u011605971
一筐愿望
采纳率31.6%
2019-07-19 22:29 阅读 1.2k

WebService:返回Json数据时通过Java该如何读取?

5

以往使用SoapUI测试时,返回的都是如下的XML格式:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:printResponse xmlns:ns2="http://server.com/">
         <return>Printing:</return>
      </ns2:printResponse>
   </S:Body>
</S:Envelope>

这回调用接口返回的却是这样的Json格式

{
  "expire": "3600",
  "custom_token": "992A5AF42EC119B50D9D6F7E25CF85BE"
}<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getkeyResponse xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>

请问这样的返回结果通过CXF等类库该如何调用并解析呢?

JaxWsDynamicClientFactory jaxWsDynamicClientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = jaxWsDynamicClientFactory.createClient("https://xxxxxx/api.asmx?wsdl");

通过上面的方式似乎只能调用并解析XML类型的返回结果

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • wojiushiwo945you 毕小宝 2019-07-20 10:08

    不管返回什么格式的数据,它本质的类型是字符串,然后再根据具体类型使用对应工具解析就可以了吧。

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-07-20 09:38

    java作为强类型语言,遇到json就比较累,需要自己先定义一个和json一样结构的类。
    具体参考:
    https://blog.csdn.net/m0_37596145/article/details/78312227

    点赞 评论 复制链接分享
  • wsllgd631044s 飞不起的鸿鹄 2019-07-20 11:05

    我一般情况下是把json数据遍历出来,然后添加到对应的数据里

    点赞 评论 复制链接分享
  • qq_19309473 Roc-xb 2019-07-20 12:38

    对于这种情况,你可以使用报文解析工具类来操作返回的数据。
    大致步骤,首先定义一个符合该文件的对象
    然后通过JAVA对象的形式进行解析。

    点赞 评论 复制链接分享
  • sdf295953 program-你懂的 2019-07-23 00:30

    你这个返回有意思了。是不是让api给坑了~ 怎么json后面加了一大堆的xml?

    你首先截断字符串,然后取json部分。创建对应的实体类。然后用json工具类转对象

    点赞 评论 复制链接分享

相关推荐