亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用運行時定義的節點名稱將數組序列化為 XML?

如何使用運行時定義的節點名稱將數組序列化為 XML?

慕森王 2023-04-13 15:18:19
我想在我使用 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));


查看完整回答
反對 回復 2023-04-13
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號