[英]Convert JSON to Java POJO
I tried to use Jackson FasterXML library, ObjectMapper,我尝试使用 Jackson FasterXML 库,ObjectMapper,
to convert JSON to Java Pojo below,将 JSON 转换为 Java Pojo 下面,
but could not find a way, for case like below.但找不到方法,例如下面的情况。
{
"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 ...
}
The unique ID 1 and unique ID 2 are unique,唯一 ID 1 和唯一 ID 2 是唯一的,
"0", "1", "0", "1" are also unique ID, “0”、“1”、“0”、“1”也是唯一ID,
and there can be unlimited unique ID,并且可以有无限的唯一ID,
so we can't use it as variable name.所以我们不能用它作为变量名。
There are Json inside Json inside Json too, with 3 depth. Json 里面也有 Json 里面 Json 里面有 3 个深度。
I created 6 Java Pojo classes to,我创建了 6 个 Java Pojo 类来,
to represent each Json.代表每个 Json。
How to use ObjectMapper to convert the Json above to these 6 classes below?如何使用 ObjectMapper 将上面的 Json 转换为下面这 6 个类?
Or it is not possible, and we should use other Library?或者不可能,我们应该使用其他库?
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;
}
try using尝试使用
HashMap<String,Pojo2> pojos = new ObjectMapper().readValue(src, new TypeReference<HashMap<String,Pojo2>>() {});
It looks to me like在我看来
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;
}
which you should be able to parse with objectMapper.readValue(in, VarMap.class)
.您应该可以使用
objectMapper.readValue(in, VarMap.class)
进行解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.