如何用java语法解析接口返回的json串?

摘要:
原因:在接口测试期间,通常需要解析接口返回的响应数据(通常为json字符串格式)。下面是接口响应数据的示例:以下是对上述接口ObjectdataObj=JSONPath返回的json字符串的解析。读取(内容,“$.data”);JSONObjectdataJsonObj=JSON.parseObject(dataObj.toString());//Get key=“searc

起因:做接口测试的时候经常需要对接口返回的响应数据(一般都是json字符串格式)做解析

下面是一个接口响应数据的例子:

如何用java语法解析接口返回的json串?第1张

下面是对上面接口返回的json格式字符串的解析

Object dataObj=JSONPath.read(content,"$.data");
        JSONObject dataJsonObj=JSON.parseObject(dataObj.toString());
        //获取key="searchResult"的值,是一个JSON数组
        JSONArray searchResultArray=dataJsonObj.getJSONArray("searchResult");
        //判断searchResult的元素个数是否大于等于1
        if(searchResultArray.size()<1){
               //报错
        }

//获取searchResult[0]
Object searchResult1=searchResultArray.get(0);
JSONObject searchResult1JsonObj=JSON.parseObject(searchResult1.toString());

JSONArray itemsArray=searchResult1JsonObj.getJSONArray("items");
// 判断items的元素个数是否大于等于1
if(itemsArray.size()<1){
//报错
}
Object items0=itemsArray.get(0);
Object businessObject=JSONPath.read(items0.toString(),"$.business");
JSONObject businessJsonObj=JSON.parseObject(businessObject.toString());
String hasAds=JSONPath.read(businessJsonObj.toString(),"$.hasAds").toString();
//判断hasAds的值
if(hasAds.equals("false")){
//...
}
 

  

免责声明:文章转载自《如何用java语法解析接口返回的json串?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server 阻止了对组件“Ad Hoc Distributed Queries”的 STATEMENT“OpenRowset/OpenDatasource”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“Ad Hoc Distributed Queries”。有关启用“Ad Hoc Distributed Queries”谷歌浏览器常用快捷键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

dubbo备忘录

1.负载均衡策略 Random LoadBalance :随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。RoundRobin LoadBalance :轮询,按公约后的权重设置轮询比率。 存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就...

idea 未实现接口红线错误提示,重复代码波浪线提示

01,Could not autowire. No beans of 'UserMapper' type found 01.1,问题描述,通过反射动态实现的接口在调用时会出现以上提示,常见的如 ORM 框架的 Dao 层 01.2,该错误不是代码问题,可以手动关闭该错误,如下,去掉方括号里面的勾选 02,Found duplicated code 02...

BTC_ETH_USDT_自动充提币API接口,钱包对接交易所教程!

 以目前市面上用的最多的优盾钱包开放平台为例。 详细的接口文档如下: 官方接口文档链接:https://www.uduncloud.com/gateway-interface 1、目录 1.1、生成地址 1.2、提币 1.3、代付 1.4、交易回调 1.5、校验地址合法性 1.6、获取商户支持币种信息 2、接口明细 1、生成地址 1.1 场景说明 请求指...

最简单的7z API接口

7z官网提供的SDK下载地址:http://www.7-zip.org/sdk.html 我觉得还是有点复杂,就把里面的例子LzmaUtil改了改,并把不需要的其它源文件删掉了,现在,使用此源码生成的dll、lib,就可以通过以下的两个接口对文件进行压缩、解压缩了: MY_STDAPI LzmaCompress(char* pSrcFile, char*...

用windbg分析一个dead lock的问题

难得Winform项目中碰到dead lock,记录一下。 QA报告说,有时候晚上跑完自动化脚本,第二天早上来发现系统hang在屏保界面没反应,从日志看也没有报错。这种属于很少才会发生,也不知道怎么重现,但是很严重的bug,于是抓个dump来研究一下。 # Windbg加载dump文件后的一些文件信息 Microsoft (R) Windows Debu...

ES6 对象的扩展

一、属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法 let a=1; let b=2; let es5={a:a,b:b}; // 等同于 let es6={a,b}; 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值 同样的,如果对象是方法,也可以简写: let es5={...