我正在尋找一種方法將一些POJO直接轉換爲Jackson TreeModel。我知道從POJO到JSON-String的翻譯存在,並且支持TreeModel到JSON-String - 我正在尋找POJO到TreeModel的翻譯。有沒有辦法?Jackson:有沒有辦法將POJO直接序列化爲treemodel?
使用情況如下:
- 服務器端模板與Java實現鬍子完成。這使用了Jackson的TreeModel。
- 之後,我需要在客戶端上減少TreeModel的版本,所以我希望能夠先過濾TreeModel,將其序列化爲JSON,然後將其發送到客戶端以供進一步處理。
這,理想情況下,涉及兩個序列化步驟。但是,在我的解決方法中,我目前使用三種 - 您可以在此處看到:
map = // a map of pojos with jackson annotations
//pojo >> JSON
StringWriter w = new StringWriter();
objectmapper.writeValue(new JsonFactory().createJsonGenerator(w), map);
String json = w.toString();
w.close();
//JSON >> Treemodel
JsonNode tree = GenericJcrDTO.mapper.readTree(json);
//filter tree here
//treemodel >>JSON
StringWriter w = new StringWriter();
GenericJcrDTO.mapper.writeValue(new JsonFactory().createJsonGenerator(w), tree);
json = w.toString();
w.close();
有人嗎?
另外一個快速的建議:而不是使用StringWriter的,只是做 'mapper.writeValueAsString()'(或者,得到的byte [], 'writeValueAsBytes()') – StaxMan
@StaxMan:謝謝。代碼已經更新:) –