我想在我使用 Jackson 的 spring boot 應(yīng)用程序中將一組 POJO 序列化為自定義 XML 格式。節(jié)點(diǎn)名稱將在運(yùn)行時(shí)child修改。我已經(jīng)成功地創(chuàng)建了一個(gè)像這樣的孩子的根: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>但是當(dāng)前代碼只輸出:<parent> <child> <random>234</random> </child></parent>我怎樣才能添加幾個(gè)孩子并仍然保留我自己的節(jié)點(diǎn)名稱?
1 回答

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