Tôi đang tìm cách chuyển trực tiếp một số POJO thành Jackson TreeModel. Tôi biết rằng một bản dịch từ POJO-sang-JSON-String tồn tại, và TreeModel-to-JSON-String được hỗ trợ - hovewer Tôi đang tìm bản dịch POJO-to-TreeModel. Là có một cách?Jackson: có cách nào để tuần tự hóa POJO trực tiếp tới treemodel không?
Việc sử dụng hợp cụ thể như sau:
- Server-side khuôn mẫu được thực hiện với việc thực hiện Java của Moustache. Điều này sử dụng TreeModel của Jackson.
- Sau đó, tôi cần một phiên bản rút gọn của TreeModel ở phía máy khách, vì vậy tôi muốn có thể lọc TreeModel đầu tiên, tuần tự hóa thành JSON, sau đó gửi nó cho phía máy khách để xử lý tiếp .
Điều này lý tưởng nhất là liên quan đến hai bước tuần tự hóa. Tuy nhiên, trong giải pháp của tôi, tôi hiện đang sử dụng ba - bạn có thể xem tại đây:
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();
Bất kỳ ai?
Một gợi ý nhanh khác: thay vì sử dụng StringWriter, chỉ cần làm 'mapper.writeValueAsString()' (hoặc, để có được byte [], 'writeValueAsBytes()') – StaxMan
@StaxMan: cảm ơn. Mã đã được cập nhật :) –