使用随机字段解析 JSON (java)

2024-03-23

我想转换一个JSON文件到一个CSV file.

My JSON文件来自DataBase存储在Firebase并且有这样的结构:

{
  "PATIENT" : {
     "-LbhwHC7Y6_umc" : {
       "age" : 31,
       "name" : "Phoebe"
    },
    "-LbhwTFJ6xjEf" : {
      "age" : 20,
      "name" : "Amy"
    },
    "-LbhxUmJ_dwIC" : {
      "age" : 28,
      "name" : "Joe"
    }
  }
}

我正在尝试这样做Gson:

package Parser;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;


public class Main {

public static void main(String[] args) {

    Gson gson = new Gson();

    try {

        BufferedReader br = new BufferedReader(
            new FileReader("c:\\file.json"));



    } catch (IOException e) {
        e.printStackTrace();
    }

}
}

我的问题是我不知道如何创建JSON具有随机字段的对象,例如:

“-LbhwHC7Y6_umc”、“-LbhwTFJ6xjEf”和“-LbhxUmJ_dwIC”

由 Firebase 生成


通常最简单的方法是对保存数据的 Java DTO 类进行建模。

所以在你的 JSON 中你有一个对象 - 让我们说包装器 - 包含另一个具有标签的对象PATIENT。并且因为这些字段PATIENT有任意名称并且似乎每个字段包含的数据实际上是Patient因此表明PATIENT is a Map将这些任意字段名称作为键,将病人实例作为每个条目的值。

所以包装器会是这样的:

@Getter
public class Wrapper {
    // We want the correct notation & plural, of course
    @SerializedName("PATIENT") 
    private Map<String, Patient> patients;
}

病人会是这样的:

@Getter
public class Patient {
    private String name;
    private Integer age;
}

反序列化和使用将类似于:

Wrapper w = gson.fromJson(new FileReader("c:\\file.json"), Wrapper.class );
w.getPatients().keySet().... // or however it is most comfortable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用随机字段解析 JSON (java) 的相关文章

随机推荐

  • 使用 Jackson 进行非对称序列化和反序列化

    我正在使用 Jackson 来序列化和反序列化 RESTful API 的数据 我想要一个 REST 资源 comments 允许发布评论以及获取评论列表 这是发布内容的 简化的 示例 comments text Text author P
  • C# WPF ListBox 复选框绑定 IsChecked 到字段并 IsSelected?

    我试图将复选框绑定到字段 但也触发复选框的 IsSelected 这是与数据绑定一起使用的列表框设置
  • 如何使用 Bootstrap 将按钮对齐到中心

    我使用 Bootstrap 创建了一个图块 在图块内部 靠近底部 我想要图块的三个按钮 开始 中间和结束 我制作了开始和结束按钮 但使用了两个div标签有pull left and pull right类 现在我想要的是放置中间按钮 这是我
  • browserify 和因子捆绑依赖 ID

    我正在使用 browserify 和 Factor bundle 来管理依赖项 理论上它应该工作得很好 我们在页面上有不同的端点 并且可以非常快速有效地运行因子包分割以进行缓存 问题是我遇到了这个问题 https github com su
  • React 在渲染之前在服务器中获取数据

    我是reactjs新手 我想在服务器中获取数据 以便它将包含数据的页面发送到客户端 当函数 getDefaultProps 返回像这样的虚拟数据 data books 时就可以了 但是不适用于下面的代码 代码按此顺序执行 并显示错误消息 无
  • ERD - 如何使用第三个实体作为“属性”来建模两个实体之间的关系

    我正在对实体关系图进行建模并陷入困境 我不确定我的考虑是否错误 或者 ERD 无法模拟我想要的内容 我有三个实体 员工 项目和角色 员工和项目之间存在关系 员工正在从事项目 但该员工不仅仅在这个项目上工作 他 她还有一个作为角色指定的操作领
  • 带有外键的 Django 表单

    我有一个用户可以拥有多本书的场景 我可以为用户和书籍创建两个不同的模型 并使用外键将它们关联起来 或者一对多是正确的方式 我已经为用户模型创建了一个 django 表单 但是当我这样做时 form as p 在模板中 仅显示用户模型字段 而
  • 如何在android中将 2021-07-06T19:27:46.811+0530 格式转换为 d MMM yyyy, hh:mm aaa 这种格式

    2021 07 06T19 27 46 811 0530 gt 当前值作为字符串 我想转换为 05 07 2021 06 45 am 这种格式 提前致谢 Use java time import java time OffsetDateTi
  • 获取 PostgreSQL 中今天生日的所有条目

    我有以下查询 我需要实现一个需要发送给今天生日的所有客户的邮件程序 这种情况每天都会发生 现在我需要实现的只是使用 Postgres SQL 查询选择生日客户端 而不是在 PHP 中过滤它们 数据库中存储的日期格式为 YYYY MM DD
  • vb.net 向存储过程发送参数

    你好 这是我在 vb net 中使用 ms Visual Studio 2010 的第一个项目 我想创建一个可以将参数发送到 transact sql 数据库中的存储过程的类 我知道如何在 vb 6 中执行此操作 但我不会确定这是否是在这里
  • 为什么我应该使用 (y,x) 而不是 (x,y) 来访问 opencv 中的像素?

    我必须使用 openCV 访问图像中的像素 但一开始我无法访问 因为 python 告诉我我想要访问的值超出范围 然后我搜索了这个错误 我发现我应该使用访问像素image y x 代替image x y 我在这个页面的评论中找到了这条信息
  • 自定义 jquery ui 日期选择器

    是否可以完全定制jquery ui http jqueryui com home日期选择器以匹配您的网站主题 包括标题 按钮和图像的位置 如果可能的话 应该采取什么方法 该怎么办呢 我想 几乎 完全重新设计它 还有哪些其他可能的选择 我尝试
  • 未处理的 Win32 异常

    在运行时 当 myApp exe 崩溃时 我收到 未处理的 Win32 异常 但我如何知道发生了哪个异常 哪里出了问题 对于 Native C 应用程序 请参阅我之前的回答 在 Windows 上检测 重定向核心转储 当软件崩溃时 http
  • 无法使用“PhpParser\Node\Scalar\String”作为类名,因为它是保留的

    当我使用 Composer 安装 Laravel 5 时 出现以下错误 无法按原样使用 PhpParser Node Scalar String 作为类名 保留在 Applications XAMPP xamppfiles htdocs l
  • ggplot2 在函数 R 内时似乎不起作用 [重复]

    这个问题在这里已经有答案了 我对 R 有点陌生 我一直在尝试将 R 脚本包装为函数 以便我可以从 Rserve 调用它 有谁知道为什么 ggplot2 不能在函数内部工作但在函数外部却工作得很好 png polarity png ggplo
  • 围绕其中心点旋转 UIImageView?

    我在 UIImageView 中有一个透明的 png self myImage 我想绕其中心点旋转 代码应该非常简单 self myImage layer setAnchorPoint CGPointMake 0 5 0 5 UIView
  • 在 Win64 下将 SOCKET 转换为 int 安全吗?

    我正在开发 POSIX C 程序的 Windows 端口 问题是标准 POSIX 函数 如accept 或bind 期望 int 作为第一个参数 而其WinSock 对应函数则使用 SOCKET 当编译为 32 位时 一切都很好 因为两者都
  • 获取图像大小而不将图像加载到内存中

    据我所知 您可以通过以下方式使用 PIL 获取图像大小 from PIL import Image im Image open image filename width height im size 但是 我想获取图像的宽度和高度witho
  • 使用 GStreamer 将视频转换为 WebM

    文档用于GStreamer令人困惑 这仍然不是诉诸的借口StackOverflow com 但仍然 是什么GStreamer命令行将任何视频文件 任何格式 转换为 WebM WebM 音频 这是我能找到的唯一带有示例的文档 http gst
  • 使用随机字段解析 JSON (java)

    我想转换一个JSON文件到一个CSV file My JSON文件来自DataBase存储在Firebase并且有这样的结构 PATIENT LbhwHC7Y6 umc age 31 name Phoebe LbhwTFJ6xjEf age