首页 > 解决方案 > 如何将此 xml 响应映射到 java 对象

问题描述

我将此响应映射到 java 对象时遇到问题。任何人都可以帮忙吗?字符串中的响应如下所示:

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="Tracking.php" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ns1:getTracksResponse>
      <return xsi:type="ns2:Map">
        <item>
          <key xsi:type="xsd:string">Authorized</key>
          <value xsi:type="xsd:int">1</value>
        </item>
        <item>
          <key xsi:type="xsd:string">Error</key>
          <value xsi:type="xsd:string"/>
        </item>
        <item>
          <key xsi:type="xsd:string">Response</key>
          <value xsi:type="ns2:Map">
          
            <item>
              <key xsi:type="xsd:string">HAWB</key>
              <value xsi:type="xsd:string">123456789A</value>
            </item>
            
            <item>
              <key xsi:type="xsd:string">Reference</key>
              <value xsi:nil="true"/>
            </item>
            
            <item>
              <key xsi:type="xsd:string">Tracks</key>
              <value SOAP-ENC:arrayType="ns2:Map[2]" xsi:type="SOAP-ENC:Array">
                <item xsi:type="ns2:Map">
                  <item>
                    <key xsi:type="xsd:string">Date</key>
                    <value xsi:type="xsd:string">2019-05-25</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Time</key>
                    <value xsi:type="xsd:string">09:19:24</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Code</key>
                    <value xsi:type="xsd:string">XXX122</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Description</key>
                    <value xsi:type="xsd:string"/>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Comment</key>
                    <value xsi:type="xsd:string">Comment text</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Final</key>
                    <value xsi:type="xsd:string">0</value>
                  </item>
                </item>
                <item xsi:type="ns2:Map">
                  <item>
                    <key xsi:type="xsd:string">Date</key>
                    <value xsi:type="xsd:string">2019-05-25</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Time</key>
                    <value xsi:type="xsd:string">10:11:00</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Code</key>
                    <value xsi:type="xsd:string">XXX123</value>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Description</key>
                    <value xsi:type="xsd:string"/>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Comment</key>
                    <value xsi:type="xsd:string"/>
                  </item>
                  <item>
                    <key xsi:type="xsd:string">Final</key>
                    <value xsi:type="xsd:string">0</value>
                  </item>
                </item>
              </value>
            </item>
          </value>
        </item>
      </return>
    </ns1:getTracksResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我只是不知道如何将它映射到 java 对象。我试图将它直接获取到 java 对象,但问题在于“项目”。项目有时是对象,有时是列表。任何想法如何解决这个问题?

标签: javaxmlweb-servicessoap

解决方案


推荐阅读