【问题标题】:How to convert XML SOAP String to JSONObject (com.ibm.json.java.JSONObject)如何将 XML SOAP 字符串转换为 JSONObject (com.ibm.json.java.JSONObject)
【发布时间】:2017-08-29 06:27:45
【问题描述】:

美好的一天,

我在 Adapter IBM Mobilefirst Platform 中创建了一个 java 类,它将从 Jax-ws 服务获得响应。

// 直接读取到肥皂服务 - 2017 年 4 月 4 日 受保护的 JSONObject createJsonObjectFrmSOAPRequest(Map mapsData) 抛出 IOException, SOAPException { JSONObject jsonObj = 新 JSONObject(); 字符串 responseSoap=""; // 创建 SOAP 连接 SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); 尝试 { // 发送 SOAP 消息到 SOAP 服务器 字符串 url = "http://XXXXX:001/test-pvr-ws/empl_get"; SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(mapsData), url); // 处理 SOAP 响应 responseSoap = printSOAPResponse(soapResponse); // 如何转换为jsonobject,输出为xml字符串 // XMLToJSONTransformer.transform(responseSoap); - 不知道如何使用 XMLToJSONTransformer //JSONObject.parse(responseSoap); // 将字符串转换为 JSONObject logger.info("jsonObject:" + jsonObj); } 捕捉(异常 e){ // TODO 自动生成的 catch 块 e.printStackTrace(); } 返回 jsonObj; } 受保护的字符串 printSOAPResponse(SOAPMessage soapResponse) 抛出异常 { 字符串 finalstringEnv = ""; 尝试 { TransformerFactory transformerFactory = TransformerFactory.newInstance(); 变压器变压器=transformerFactory.newTransformer(); 源 sourceContent = soapResponse.getSOAPPart().getContent(); System.out.print("\n响应 SOAP 消息 = "); //为输出创建一个StringWriter StringWriter outWriter = new StringWriter(); // StreamResult 结果 = new StreamResult(System.out); // 这是用于打印行输出 StreamResult 结果 = 新 StreamResult(outWriter); transformer.transform(sourceContent, 结果); // 如何将 Transformer.transform() 转换为 String java StringBuffer sb = outWriter.getBuffer(); finalstringEnv = sb.toString(); } 捕捉(异常 e){ // TODO: 处理异常 e.printStackTrace(); } 返回最终字符串环境; }

2 。此代码将获取 XML 字符串中的响应,但我不知道如何使用库 com.ibm.json.*。我想将字符串响应转换为 JSONObject。

2.1。 XML Soap 信封中的结果响应(我得到的示例成功结果)。

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <a:getTheResponse xmlns:a="http://XXXXX:001/test-pvr-ws/empl_get/">
    <getTheRecord>
    <statusCode>0</statusCode>
    <getTheRecord>
    <userid>1212</userid>
    </a:getTheResponse>
    </soapenv:Body>
    </soapenv:Envelope>

2.2。 responseSoap 字符串变量我需要将字符串 XML Soap 响应转换为 JSONObject

// 处理 SOAP 响应 responseSoap = printSOAPResponse(soapResponse); //....... 将 String XML Soap 响应转换为 JSONObject 的代码

【问题讨论】:

  • 如果可以的话,什么需要转换为JSONXML不是更丰富吗?

标签: json xml


【解决方案1】:

我回答我的问题:

最近刚尝试,需要使用XMLToJSONTransformer(com.ibm.json.xml.XMLToJSONTransformer)这个方法将XML字符串转成JSONObject。

String jsonObjectStr ="";

// convert String to JSONObject
jsonObjectStr = xmlToJsonTransformer.transform(responseSoap);
        jsonObj = JSONObject.parse(jsonObjectStr); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    相关资源
    最近更新 更多