期间,我有一个对象结构如下所示:杰克逊设置值反序列化
public class Product {
int id;
String name;
Size[] sizes;
boolean organic;
}
public class Size {
int id;
String value;
@JsonIgnore String info;
}
在解析JSON的产品类,我想每个尺寸的信息设置为String
"Organic"
。在organic
属性的setter中,我检查值并遍历大小,为每个大小设置信息。
@JsonProperty("organic")
public void setOrganic(boolean organic) {
this.organic = organic;
if (organic)
for(Size size : sizes) size.info = "Organic";
}
首先,这种做法似乎是脆的,因为它依赖于JSON属性的顺序上,其次,它并不总是似乎工作。对于JSON具有更多属性的生产环境,我似乎可以在子对象(此处为Size
)上设置属性,并在解析过程中读取并记录它们,但是当我从最终的反序列化对象中读取它们时值始终为空。同样,这种行为似乎与我设置测试的较小测试案例不同。
有谁知道更好的方法来做到这一点?
无法初始化与“有机”的信息? –
哦,对不起...错过了条件。 –
我看到.......... –