我想在我使用 Jackson 的 spring boot 應用程序中將一組 POJO 序列化為自定義 XML 格式。節點名稱將在運行時child修改。我已經成功地創建了一個像這樣的孩子的根:import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectWriter;import com.fasterxml.jackson.databind.node.ObjectNode;import com.fasterxml.jackson.dataformat.xml.XmlMapper;import java.util.Arrays;import java.util.List;import java.util.Random;class MyPojo { public int random = new Random().nextInt(); public static void main(String[] args) throws JsonProcessingException { List<MyPojo> list = Arrays.asList(new MyPojo(), new MyPojo()); XmlMapper mapper = new XmlMapper(); final ObjectWriter writer = mapper.writer().withRootName("parent"); ObjectNode node = mapper.createObjectNode(); list.forEach(x -> node.putPOJO("child", x)); // <= does not work, replaces values instead of adding them String s = writer.writeValueAsString(node); System.out.println(s); }}我希望它輸出:<parent> <child> <random>123</random> </child> <child> <random>234</random> </child></parent>但是當前代碼只輸出:<parent> <child> <random>234</random> </child></parent>我怎樣才能添加幾個孩子并仍然保留我自己的節點名稱?
1 回答

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
您需要放置一個ArrayNode并將孩子添加到其中
OjectNode node = mapper.createObjectNode();
ArrayNode arrayNode = node.putArray("child");
list.forEach(x -> arrayNode.addPOJO(x));
添加回答
舉報
0/150
提交
取消