第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 JACKSON 從 JSON 輸入向 XML 添加屬性

使用 JACKSON 從 JSON 輸入向 XML 添加屬性

拉風(fēng)的咖菲貓 2021-06-07 17:36:12
這是我的 JSON    {      "field1": "value1",      "field2": "value2",      "field3": "value3",      "field4": "value4",      "field5": "value5"    }這是我想轉(zhuǎn)換為的 XML:<root>    <element1>value1</element1>    <element2>value2</element2>    <element3 element4="value4" element5="value5">value3</element3></root>所以基本上,我想將元素 4 和 5 作為元素 3 的屬性。希望到目前為止我是有道理的。這就是我解析 JSON 的 pojo 的樣子public class JSONMessage {    Date timestamp;    @JsonProperty("field1")    @JacksonXmlProperty(localName = "element1")    String element1;    @JsonProperty("field2")    @JacksonXmlProperty(localName = "element2")    String element2;    @JsonProperty("field3")    @JacksonXmlProperty(localName = "element3")    String element3;    @JsonProperty("field4")    @JacksonXmlProperty(localName = "element4")    String element4;    @JsonProperty("field5")    @JacksonXmlProperty(localName = "element5")    String element5;}這就是我將 JSON 解析為 XML 的 pojo 的樣子@JacksonXmlRootElement(localName = "linkFoundEvent")public class XMLMessage {    private Date element1;    private String element1;    private String element2;    @JacksonXmlProperty(localName = "element3")    private Element3 element3;}對于 Element3,我編寫了這個類 -public class Element3{    @JacksonXmlText    private String element3;    @JacksonXmlProperty(localName = "element4", isAttribute = true)    private String element4;    @JacksonXmlProperty(localName = "element5", isAttribute = true)    private String element5;}如何將 Element4 和 Element5 作為 Element4 的屬性?請幫忙!非常感謝。
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

您不需要兩個 POJO 類(一個用于 JSON,一個用于 XML)來實現(xiàn)從輸入 json 到輸出 xml 的轉(zhuǎn)換(如果這就是您想要的),請查看以下完整的工作代碼:


import java.io.IOException;

import com.fasterxml.jackson.annotation.JsonCreator;

import com.fasterxml.jackson.annotation.JsonProperty;

import com.fasterxml.jackson.core.JsonParseException;

import com.fasterxml.jackson.databind.JsonMappingException;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.dataformat.xml.XmlMapper;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText;


public class JsonXmlTransformation {


    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {

        System.out.println(jsonToXml());

    }


    /**

     * json to xml transformation 

     */

    public static String jsonToXml() throws JsonParseException, JsonMappingException, IOException{

        String json = "{\r\n      \"field1\": \"value1\",\r\n      \"field2\": \"value2\",\r\n      \"field3\": \"value3\",\r\n      \"field4\": \"value4\",\r\n      \"field5\": \"value5\"\r\n    }";

        return new XmlMapper().writeValueAsString(new ObjectMapper().readValue(json, Message.class));

    }

}


class Message {


    @JacksonXmlProperty(localName = "element1")

    String element1;


    @JacksonXmlProperty(localName = "element2")

    String element2;


    @JacksonXmlProperty(localName = "element3")

    Elements elements;


    @JsonCreator

    public Message(@JsonProperty("field1") String element1, @JsonProperty("field2") String element2,

            @JsonProperty("field3") String element3, @JsonProperty("field4") String element4, @JsonProperty("field5") String element5) {

        super();

        this.element1 = element1;

        this.element2 = element2;

        this.elements = new Elements(element3, element4, element5); 

    }

}


class Elements{


    public Elements(String element3, String element4, String element5) {

        super();

        this.element3 = element3;

        this.element4 = element4;

        this.element5 = element5;

    }


    @JacksonXmlText

    String element3;


    @JacksonXmlProperty(localName = "element4", isAttribute = true)

    String element4;


    @JacksonXmlProperty(localName = "element5", isAttribute = true)

    String element5;

}

輸入:


{

      "field1": "value1",

      "field2": "value2",

      "field3": "value3",

      "field4": "value4",

      "field5": "value5"

    }

輸出:


<Message>

    <element1>value1</element1>

    <element2>value2</element2>

    <element3 element4="value4" element5="value5">value3</element3>

</Message>


查看完整回答
反對 回復(fù) 2021-06-10
  • 1 回答
  • 0 關(guān)注
  • 428 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號