我尝试使用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也在内线,有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;
}
您应该能够使用CCD_ 1对其进行解析。