Java 将XML响应转换为特定的POJO
下面是我通过API调用得到的XML响应:Java 将XML响应转换为特定的POJO,java,xml,jackson,pojo,Java,Xml,Jackson,Pojo,下面是我通过API调用得到的XML响应: <userinfo> <LOGINID>CPAUser</LOGINID> <DESCRIPTION>Console Member</DESCRIPTION> <CONTACTINFO.CONTACTNAME>CPAUser</CONTACTINFO.CONTACTNAME> <CONTACTINFO.PREFIX></C
<userinfo>
<LOGINID>CPAUser</LOGINID>
<DESCRIPTION>Console Member</DESCRIPTION>
<CONTACTINFO.CONTACTNAME>CPAUser</CONTACTINFO.CONTACTNAME>
<CONTACTINFO.PREFIX></CONTACTINFO.PREFIX>
<CONTACTINFO.FIRSTNAME>External</CONTACTINFO.FIRSTNAME>
<CONTACTINFO.INITIAL></CONTACTINFO.INITIAL>
<CONTACTINFO.LASTNAME>User</CONTACTINFO.LASTNAME>
<CONTACTINFO.COMPANYNAME></CONTACTINFO.COMPANYNAME>
<CONTACTINFO.PRINTAS>Console Member</CONTACTINFO.PRINTAS>
<CONTACTINFO.PHONE1></CONTACTINFO.PHONE1>
<CONTACTINFO.PHONE2></CONTACTINFO.PHONE2>
<CONTACTINFO.CELLPHONE></CONTACTINFO.CELLPHONE>
<CONTACTINFO.PAGER></CONTACTINFO.PAGER>
<CONTACTINFO.FAX></CONTACTINFO.FAX>
<CONTACTINFO.EMAIL1>noreply@intacct.com</CONTACTINFO.EMAIL1>
<CONTACTINFO.EMAIL2></CONTACTINFO.EMAIL2>
<CONTACTINFO.URL1></CONTACTINFO.URL1>
<CONTACTINFO.URL2></CONTACTINFO.URL2>
<CONTACTINFO.MAILADDRESS.ADDRESS1></CONTACTINFO.MAILADDRESS.ADDRESS1>
<CONTACTINFO.MAILADDRESS.ADDRESS2></CONTACTINFO.MAILADDRESS.ADDRESS2>
<CONTACTINFO.MAILADDRESS.CITY></CONTACTINFO.MAILADDRESS.CITY>
<CONTACTINFO.MAILADDRESS.STATE></CONTACTINFO.MAILADDRESS.STATE>
<CONTACTINFO.MAILADDRESS.ZIP></CONTACTINFO.MAILADDRESS.ZIP>
<CONTACTINFO.MAILADDRESS.COUNTRY>United States</CONTACTINFO.MAILADDRESS.COUNTRY>
<CONTACTINFO.MAILADDRESS.COUNTRYCODE></CONTACTINFO.MAILADDRESS.COUNTRYCODE>
<ADMIN>Full</ADMIN>
<USERTYPE>business user</USERTYPE>
<VISIBLE>false</VISIBLE>
<STATUS>active</STATUS>
<UNRESTRICTED>true</UNRESTRICTED>
<LOGINDISABLED>false</LOGINDISABLED>
<PWDNEVEREXPIRES>false</PWDNEVEREXPIRES>
<RESETPASSWORD>false</RESETPASSWORD>
<PWDQLYNOTENFORCED>false</PWDQLYNOTENFORCED>
<WHENCREATED>01/01/1970 00:00:00</WHENCREATED>
<WHENMODIFIED>08/24/2019 03:01:42</WHENMODIFIED>
<CREATEDBY></CREATEDBY>
<MODIFIEDBY></MODIFIEDBY>
<RECORDNO>3</RECORDNO>
<CONTACTKEY>3</CONTACTKEY>
<CHATTER_DISABLED>false</CHATTER_DISABLED>
<MEGAENTITYKEY></MEGAENTITYKEY>
<MEGAENTITYID></MEGAENTITYID>
<MEGAENTITYNAME></MEGAENTITYNAME>
<SSO_ENABLED>false</SSO_ENABLED>
<SSO_FEDERATED_ID></SSO_FEDERATED_ID>
<SSO_COMPANY_ENABLED>Disabled</SSO_COMPANY_ENABLED>
<MFA_ENABLED>false</MFA_ENABLED>
<MFA_NOTRUST>none</MFA_NOTRUST>
</userinfo>
您肯定知道,Java中的变量不能像上面所示那样命名,例如CONTACTINFO.FIRSTNAME
,这将导致语法错误
使用@JacksonXmlProperty(CONTACTINFO.xxx)
我可以重命名变量。但是,对于格式为XXX.YYY
有没有一种方法可以将XML转换为POJO,如下所示:
public class Userinfo
{
public String MFA_ENABLED;
public String CHATTER_DISABLED;
...
public Contactinfo contactinfo;
public class Contactinfo {
public String CONTACTINFO_EMAIL1;
...
}
}
我可以处理变量名,但我需要一种方法来获取上述格式
如果我忽略了什么,请告诉我。我正在使用
XmlMapper
解析XML。似乎是XAML格式,而不是XML。@微笑我正在尝试转换XML本身。
public class Userinfo
{
public String MFA_ENABLED;
public String CHATTER_DISABLED;
...
public Contactinfo contactinfo;
public class Contactinfo {
public String CONTACTINFO_EMAIL1;
...
}
}