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

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

如何使用相同的元素和其他元素映射 XML Wrapper

如何使用相同的元素和其他元素映射 XML Wrapper

不負(fù)相思意 2021-11-11 17:41:26
我有一個 XML 模式,帶有一個元素name:<xsd:element name="name">  <xsd:complexType>    <xsd:sequence>      <xsd:element name="given" maxOccurs="unbounded" type="xsd:string"/>      <xsd:element name="family" type="xsd:string"/>    </xsd:sequence>  </xsd:complexType></xsd:element>我需要將它映射到工作 java 類。我有一個帶有 JAXB XML 控制器的 Spring Boot 應(yīng)用程序,它需要:<name>  <given>First</given>  <given>Second</given>  <family>Lastname</family></name>如果我使用自動模式源生成(使用 jaxb2-maven-plugin),我會得到一個類:            @XmlAccessorType(XmlAccessType.FIELD)            @XmlType(name = "", propOrder = {                "given",                "family"            })            public static class Name {                @XmlElement(required = true)                protected List<String> given = new ArrayList<>();                @XmlElement(required = true)                protected String family;                public List<String> getGiven() {                    if (given == null) {                        given = new ArrayList<>();                    }                    return this.given;                }                public void setGiven(List<String> given) {                    this.given = given;                }                public String getFamily() {                    return family;                }                public void setFamily(String value) {                    this.family = value;                }            }但問題是,當(dāng)我運(yùn)行 spring boot 應(yīng)用程序并使用上述 XML 調(diào)用它時,出現(xiàn)錯誤:*....Name["given"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token*我無法控制發(fā)送數(shù)據(jù)的格式,因此無法更改接收到的 XML。我嘗試了許多不同的解決方案,但我完全堅持這一點(diǎn)。你能幫我嗎?
查看完整描述

1 回答

?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個贊

試試 @JacksonXmlElementWrapper(useWrapping = false)


例子


@Test

public void test2() throws JsonParseException, JsonMappingException, IOException {

    ObjectMapper mapper = new XmlMapper();

    Name name = mapper.readValue("<name>\n" + "  <given>First</given>\n" + "  <given>Second</given>\n"

                    + "  <family>Lastname</family>\n" + "</name>", Name.class);

    System.out.println(toString(name));

}


public static class Name {

    @JacksonXmlElementWrapper(useWrapping = false)

    public List<String> given = new ArrayList<>();

    @XmlElement(required = true)

    public String family;

}


public String toString(Object obj) {

    try {

        StringWriter w = new StringWriter();

        new ObjectMapper().configure(SerializationFeature.INDENT_OUTPUT, true).writeValue(w, obj);

        return w.toString();

    } catch (Exception e) {

        throw new RuntimeException(e);

    }

}

印刷


{

  "given" : [ "First", "Second" ],

  "family" : "Lastname"

}


查看完整回答
反對 回復(fù) 2021-11-11
  • 1 回答
  • 0 關(guān)注
  • 219 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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