[英]Convert JSON to Java POJO
我尝试使用 Jackson FasterXML 库,ObjectMapper,
将 JSON 转换为 Java Pojo 下面,
但找不到方法,例如下面的情况。
{
"uniqueID1": {
"var1": true,
"var2": 0.0,
"var3": "cash",
"vars": {
"0": {
"varsvar1": "cash",
"varsvar2": {
"0": {
"varsvarvar1": "cash"
},
"1": {
"varsvarvar1": "cheque"
}
}
},
"1": {
"varsvar1": "cash",
"varsvar2": {
"0": {
"varsvarvar1": "cash"
},
"1": {
"varsvarvar1": "cheque"
}
}
}
}
},
"uniqueID2": {
"var1": true,
"var2": 0.0,
"var3": "cash",
"vars": {
"0": {
"varsvar1": "cash",
"varsvar2": {
"0": {
"varsvarvar1": "cash"
},
"1": {
"varsvarvar1": "cheque"
}
}
},
"1": {
"varsvar1": "cash",
"varsvar2": {
"0": {
"varsvarvar1": "cash"
},
"1": {
"varsvarvar1": "cheque"
}
}
}
}
},
.... can be a lot with different unique id ...
}
唯一 ID 1 和唯一 ID 2 是唯一的,
“0”、“1”、“0”、“1”也是唯一ID,
并且可以有无限的唯一ID,
所以我们不能用它作为变量名。
Json 里面也有 Json 里面 Json 里面有 3 个深度。
我创建了 6 个 Java Pojo 类来,
代表每个 Json。
如何使用 ObjectMapper 将上面的 Json 转换为下面这 6 个类?
或者不可能,我们应该使用其他库?
public class Pojo1{
private String uniqueIDPojo1;
private Pojo2 pojo2;
}
public class Pojo2{
private boolean var1;
private double var2;
private String var3;
private Map<String,Pojo3> vars;
}
public class Pojo3{
private String uniqueIDPojo3;
private Pojo4 pojo4;
}
public class Pojo4{
private String varsvar1;
Map<String,Pojo5> varsvar2;
}
public class Pojo5{
private String uniqueIDPojo5;
private Pojo6 pojo6;
}
public class Pojo6{
private String varsvarvar1;
}
尝试使用
HashMap<String,Pojo2> pojos = new ObjectMapper().readValue(src, new TypeReference<HashMap<String,Pojo2>>() {});
在我看来
class VarMap {
Map<String, Var> varmap;
}
class Var {
boolean var1;
double var2;
String var3;
Map<String, VarVar> vars;
}
class VarVar {
String varsvar1;
Map<String, VarsVarVar> varsvar2;
}
class VarsVarVar {
String varsvarvar1;
}
您应该可以使用objectMapper.readValue(in, VarMap.class)
进行解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.