【发布时间】:2021-12-27 12:40:04
【问题描述】:
我正在尝试使用解组来使用 xml 字符串创建对象。这是我正在使用的代码。但是我无法获取不在驼峰格式中的参数(MemResponse)的值,其余参数设置正确。
早些时候我没有使用 jsonproperty 注释,我搜索了这个问题并了解了这个注释。但是,使用注解后也一样。 MemResponse 字段仍为空值。
JAXBContext jc = JAXBContext.newInstance(Transaction.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
StreamSource streamSource = new StreamSource(new StringReader(content));
JAXBElement<Transaction> jaxbElement = unmarshaller.unmarshal(streamSource, Transaction.class);
事务类如下
public class Transaction
{
private String transType;
private String xmlDate;
private String source;
private String xmlVersion;
@JsonProperty("MemResponse")
private MemResponse MemResponse;
}
这是 MemResponse 类
public class MemResponse
{
@JsonProperty("DependantDetail")
private DependantDetail[] DependantDetail;
@JsonProperty("Telephone")
private Telephone Telephone;
@JsonProperty("Address")
private Address[] Address;
@JsonProperty("MemberDetail")
private MemberDetail MemberDetail;
}
这是我的 sml 字符串
<Transaction>\n
<xmlVersion>1</xmlVersion>\n
<xmlDate>25/11/2011</xmlDate>\n
<source>MACROMOBI</source>\n
<transType>MEMDETAIL</transType>\n
<MemResponse>\n
<MemberDetail>\n
<joinDate>01/07/2007</joinDate>\n
<leftDate>31/01/2008</leftDate>\n
<employerCode></employerCode>\n
<depCount>2</depCount>\n
<langPref>ENG</langPref>\n
<nextMemberNo/>\n
<nextPlanCode/>\n
</MemberDetail>\n
<DependantDetail>\n
<depNum>01</depNum>\n
<initials>G</initials>\n
<depTitle>MR</depTitle>\n
<gender>M</gender>\n
<maritalStatus>S</maritalStatus>\n
<joinDate>01/07/2007</joinDate>\n
<leftDate>31/01/2008</leftDate>\n
<relation>SELF</relation>\n
<depType>PM</depType>\n
</DependantDetail>\n
<DependantDetail>\n
<depNum>02</depNum>\n
<initials>S</initials>\n
<depTitle>MRS</depTitle>\n
<birthDate>20/11/1944</birthDate>\n
<gender>F</gender>\n
<maritalStatus>S</maritalStatus>\n
<joinDate>01/07/2007</joinDate>\n
<benefitStart>01/07/2007</benefitStart>\n
<leftDate>31/01/2008</leftDate>\n
</DependantDetail>\n
<Telephone>\n
<contType>MVWORK</contType>\n
<dialCode>+</dialCode>\n
<dialNum>5</dialNum>\n
<smsFlag/>\n
</Telephone>\n
<Address>\n
<contType>PM</contType>\n
<addr02>MORNINGSIDE</addr02>\n
<addr04/>\n
<town>MUTARE</town>\n
<postCode>0000</postCode>\n
</Address>\n
<Address>\n
<contType>RM</contType>\n
<addr02>MORNINGSIDE</addr02>\n
<addr03>MUTARE</addr03>\n
<addr04/>\n
<postCode>0000</postCode>\n
</Address>\n
</MemResponse>\n
</Transaction>\n
【问题讨论】:
标签: java xml marshalling