我想解析一些Json到一个Java对象。
某些字段需要自定义行为,所以我试图在构造函数上使用@JsonCreator
。Jackson反序列化器:在字段中使用@JsonCreator和@JsonProperty?
那么,它的工作,但其他字段与@JsonProperty
注释未填充。
还没有检查,但我想我的对象与@JsonUnwrapped
注释也不填充。
在我的搜索中,我看到一条评论,表明它是可能的,但我不知道如何,如果它确实有可能。
json中有大约400个字段,只有5或6个字段需要自定义行为。所以,如果我可以避免重写所有的构造函数......那会很好!
为例的是我的尝试:
public class MyObjectA {
@JsonProperty("keyField1")
private String myField1;
@JsonUnwrapped
private MyObjectB;
private String[] myField2;
@JsonCreator
public MyObjectA(final Map<String, Object> properties){
myField2 = ... //some Business logic
}
}
的Junit:
ObjectMapper mapper = new ObjectMapper();
MyObjectA result = mapper.readValue(getJsonInputStream(JSON_FILE_PATH),MyObjectA.class);
Assert.notNull(result.getMyField1(),"should be populated")
Assert.notNull(result.getMyField2(),"should be populated")
Assert.notNull(result.getMyObjectB(),"should be populated")
注:无构造,其他的领域中是公填充
请分享您的代码与问题...与示例json和您的pojo – Optional
文章编辑,以提供一个示例。 –