我想解析一些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
文章編輯,以提供一個示例。 –