11
का उपयोग कर पीओजेओ को एक्सएमएल deserialization जैक्सन XmlMapper एनोटेशन का उपयोग, मैं इस एक्सएमएल को एक pojo में deserialize कैसे होगा?जैक्सन XmlMapper
<?xml version="1.0" encoding="UTF-8"?>
<open>
<creds priv="write" type="internal">
<user>Username1</user>
<client_token>abcplaudzrbcy37c</client_token>
<client_secret>0cxDE3LE0000=</client_secret>
</creds>
<creds priv="read" type="internal">
<user>Username1</user>
<client_token>123plaudzrbcy37c</client_token>
<client_secret>0cxDE3LE1234=</client_secret>
</creds>
<creds priv="none" type="internal">
<user>Username1</user>
<client_token>000plaudzrbcy37c</client_token>
<client_secret>0cxDE3LEabcd=</client_secret>
</creds>
</open>
मैं कुछ इस तरह इस्तेमाल करने का प्रयास:
@JacksonXmlRootElement(localName = "Open")
public class OpenCredentials {
@JacksonXmlProperty(localName = "Credentials")
private Credentials[] credentials;
}
class Credentials {
@JacksonXmlProperty(isAttribute = true)
private String priv;
@JacksonXmlProperty(isAttribute = true)
private String type;
@JacksonXmlProperty(localName = "Creds")
private Creds[] creds;
}
class Creds {
@JacksonXmlText(value = true)
private String user;
@JacksonXmlText(value = true)
private String client_token;
@JacksonXmlText(value = true)
private String client_secret;
}
जब मैं XmlMapper के readValue() का उपयोग करने की कोशिश की, मैं निम्नलिखित त्रुटि मिलती है:
com.fasterxml.jackson.databind.JsonMappingException: Duplicate property '' for [simple type, class com.company.data.utils.api.Creds]
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:268)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:243)
मुझे "अज्ञात फ़ील्ड" स्थानीयकरण को जैक्सनएक्सएमएलएमेंटमेंट रैपर एनोटेशन में मिला है, @MichalZiober उदाहरण के रूप में विभाजित होने के बाद deserialization ठीक से काम करता है –