【问题标题】:Reading extra field from json string using object mapper使用对象映射器从 json 字符串中读取额外字段
【发布时间】:2015-12-02 15:55:11
【问题描述】:
Class A {
String a;
String b;
String c;
}
Class B {
String a;
String b;
}
我希望使用 ObjectMapper.readValue (jString, B.class) 读取 A 类的一个 json 字符串 jString,我能否传递一些参数,这将有助于我也读取 c 但在其他一些结构中?
我正在使用 org.codehaus.jackson.map.ObjectMapper。
【问题讨论】:
标签:
java
json
jackson
objectmapper
【解决方案1】:
老实说,它不适用于 ObjectMapper。
如果你这样做,
ObjectMapper.readValue (jString, B.class),
- 所以,在 B 的 getter 和 setter 方法的帮助下,库总是从 json String 解析 vales 并将其分配给 B。
- 如果您试图推动除 Object 不存在的部分之外的其他内容,那么它将为您生成错误的东西。
最好先准备这种类型的Object,然后再做。
【解决方案2】:
如果你打算同时创建A类和B类的实例,你可以读取json两次来创建实例。 B 的转换将忽略属性“c”。
A a = mapper.readValue(jString, A.class);
B b = mapper.readValue(jString, B.class);