我想转换一个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(使用前将#替换为@)