我试图使用解组来创建一个使用xml字符串的对象。这是我正在使用的代码。但是我无法得到一个参数的值(内存响应),这不是在camelcase,其余的参数正在得到正确的设置。
早些时候,我没有使用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;
}
这是Mem响应类
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
您不能使用@JsonProperty
反序列化事务对象,因为您正在处理XML,并且@JsonProperty
特定于JSON。
相反,在事务
类上放置@XmlRootElement
注释,在所有字段上放置@XmlElement
注释。下面是您的事务
类的外观,我将让您对MemResponse
和其他类进行相同的更改:
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Transaction {
@XmlElement
private String transType;
@XmlElement
private String xmlDate;
@XmlElement
private String source;
@XmlElement
private String xmlVersion;
@XmlElement(name = "MemResponse")
private MemResponse memResponse;
}
如果元素名与字段名匹配,则不必在@XmlElement
注释中指定name
。但是,作为一个例子,我给memSolutions
字段提供了一个初始小写字母,以适应字段的Java命名约定,并指定在注释中使用元素名称MemSolutions
。
我正在JSBin上玩ReactJS框架。 我注意到,如果我的组件名称以小写字母开头,它就不起作用。 例如,以下内容不会呈现: 但只要我用替换它就会呈现。 我不能用小字母开始标签有什么原因吗?
问题内容: 我正在使用JSBin上的ReactJS框架。 我注意到,如果我的组件名称以小写字母开头,那么它将不起作用。 例如,以下内容不呈现: 但是,一旦我替换为,它就会渲染。 我不能以小写字母开头的标签有原因吗? 问题答案: 在JSX中,小写标签名称被认为是HTML标签。但是,带点号(属性访问器)的小写标记名称不是。 参见HTML标签与React组件。 编译为(html标记) 编译为 编译为
我有这个正则表达式: 搜索: 替换为: 这将把所有单词的第一个字母替换成大写字母。例如:
我在大学学习Java,我需要写一个静态int countCapitals(String s)方法,返回字符串s中有多少个单词以大写字母开头。 大写字母是UPPERCASE_LETTER类型或TITLECASE_LETTER类型的字符(Character)。单词是由一个或多个空格、字符、符号或标点符号分隔的字母或数字序列。 New.countCapitals("亲爱的朋友们,你们好!这里—以大写字母
大家好,我希望这个程序能够对大写字母进行编码,而不使用其他字符,并通过输出传递它们。例如“你好,世界!”运行程序“URYY\d_YQ!”后应变为我得到的是Yluhreylbowjwboerylqdxk而不是“URYY\dyq!”这就是我应该得到的。如果有人能让我知道我做错了什么,我将不胜感激。提前谢谢。
null 我对解析和的最佳猜测如下。此regex似乎将所有输入计算为: