[英]Jackson POJO mapping
我试图通过杰克逊将以下json映射到pojo。 我有第一部分工作(直到部分)。 然而,第二部分我不知道如何将“section1”映射到也许是一个包含的pojo或最佳实践?
json通过休息电话收到:
{
"val1":100,
"val2":2.75,
"junk":[
{
"junk1":36,
"junk2":78
},
{
"junk1":36,
"junk2":78
}
],
"section1":{ // <- There will be another section2, section3,...
"val1":100,
"val2":2.75,
"junk1":[
{
"junk1":36,
"junk2":78
},
{
"junk1":36,
"junk2":78
}
],
"junk2":[
{
"junk1":36,
"junk2":78
},
{
"junk1":36,
"junk2":78
}
]
}
}
POJO:
public class view
{
private int val1;
private float val2;
private List<Map<String, String> > junk; //<-Ok as I just pass to another class
// How to store "section" ... and want to keep junk1, junk2 same
// placeholder like I have for junk in main section above.
}
如果每个部分(和每个垃圾片段)的内容在内部具有相同的结构,则将'section'设为另一个类,并且还为'junk'。
public class view
{
private int val1;
private float val2;
private List<Junk> junk; //<-Ok as I just pass to another class
private Section section1;
private Section section2;
... etc ...
}
public class Section {
private int val1;
private float val2;
private List<Junk> junk; //<-Ok as I just pass to another class
}
public class Junk {
private String junk1;
private Strign junk2;
}
我假设你展示的结构而不是一系列的部分。
另外,地图不是存储两个随机字符串的好地方。 但杰克逊会允许它。 唯一的例外是如果字段的名称将从'junk1'和'junk2'变化。 否则只需使用一个包含两个字符串的类。
请注意,您可以指出应忽略“垃圾”。 有几种方法可以做到; 一个是做:
@JsonIgnoreProperties({"junk"})
public class MyClass { ... }
这样做的好处是不需要内存来存储匹配数据; 它可以加速解析(不是一吨,但有些;解析器仍然需要解码JSON跳过它等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.