簡體   English   中英

將 soap 響應轉換為 json

[英]Convert soap response to json

我有以下 soap 回復

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:confirmPayer_10Response xmlns:ns2="http://v1.ws.provider.acp.com/">
         <return>
            <KeyValues>
               <Key>MICROFILM_NUMBER</Key>
               <Data>71111112236100141977490</Data>
            </KeyValues>
            <KeyValues>
               <Key>USER_TOKEN</Key>
               <Data>hpuser</Data>
            </KeyValues>
            <KeyValues>
               <Key>PASSWORD_TOKEN</Key>
               <Data>hpuser+22**</Data>
            </KeyValues>
         </return>
      </ns2:confirmPayer_10Response>
   </soap:Body>
</soap:Envelope>

我如何將此響應轉換為如下所示的 json

{
   "MICROFILM_NUMBER" : "71111112236100141977490",
   "USER_TOKEN" : "hpuser",
   "PASSWORD_TOKEN" : "hpuser+22**"
}

Underscore -java可以將xml轉換為json。

        String xml = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
            "   <soap:Body>\n" +
            "      <ns2:confirmPayer_10Response xmlns:ns2=\"http://v1.ws.provider.acp.com/\">\n" +
            "         <return>\n" +
            "            <KeyValues>\n" +
            "               <Key>MICROFILM_NUMBER</Key>\n" +
            "               <Data>71111112236100141977490</Data>\n" +
            "            </KeyValues>\n" +
            "            <KeyValues>\n" +
            "               <Key>USER_TOKEN</Key>\n" +
            "               <Data>hpuser</Data>\n" +
            "            </KeyValues>\n" +
            "            <KeyValues>\n" +
            "               <Key>PASSWORD_TOKEN</Key>\n" +
            "               <Data>hpuser+22**</Data>\n" +
            "            </KeyValues>\n" +
            "         </return>\n" +
            "      </ns2:confirmPayer_10Response>\n" +
            "   </soap:Body>\n" +
            "</soap:Envelope>";
        U.Builder builder = U.objectBuilder().fromXml(xml);
        U.Builder out = U.objectBuilder();
        out.add(builder.get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.0.Key"),
            builder.<Object>get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.0.Data"));
        out.add(builder.get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.1.Key"),
            builder.<Object>get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.1.Data"));
        out.add(builder.get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.2.Key"),
            builder.<Object>get("soap:Envelope.soap:Body.ns2:confirmPayer_10Response.return.KeyValues.2.Data"));
        System.out.println(out.toJson());
{
  "MICROFILM_NUMBER": "71111112236100141977490",
  "USER_TOKEN": "hpuser",
  "PASSWORD_TOKEN": "hpuser+22**"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM