浅谈JSONObject解析JSON数据
我们在做jmeter接口测试时能会用beanshell断言,一般都会将返回值转成JSONObject对象进行处理。本文选取较为复杂json格式数据,也将适用于java接口测试。
JSON数据
{
"data": {
"city": "深圳",
"date": "2017-11-04",
"pm25": {
"aqi": 0,
"co": 8,
"updatetime": "2017-11-04 13:00:00"
},
"daily": [
{
"date": "2017-11-04",
"week": "星期六",
"templow": "19",
"weather": "多云"
},
{
"date": "2017-11-05",
"week": "星期日",
"sunrise": "06:29",
"weather": "多云"
}
]
},
"status": 0,
"msg": "ok"
}
解析JSON
以下代码使用HttpClient进行接口测试,同时使用testNg进行断言
package apitest.cases;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.net.URI;
public class Weather {
@Test
public void weather() {
HttpClient httpClient = HttpClientBuilder.create().build();
//执行post方法
try {
HttpGet httpGet = new HttpGet();
httpGet.setURI(URI.create("http://localhost:8001/weather"));
//声明一个对象来进行响应结果的存储
HttpResponse response = httpClient.execute(httpGet);
//获取响应结果将格式转化为Json数据
String response2 = EntityUtils.toString(response.getEntity(), "utf-8");
JSONObject responseJson = new JSONObject(response2);
// 获取msg status
String msg = responseJson.getString("msg");
String status = responseJson.get("status").toString();
// 获取data
JSONObject jsonData = responseJson.getJSONObject("data");
// 获取data里的city
String city = jsonData.getString("city");
// 获取pm25
JSONObject pm25 = jsonData.getJSONObject("pm25");
// 获取pm25里的updatetime
String updateTime = pm25.getString("updatetime");
// 获取data里的daily
JSONArray jsonDaily = jsonData.getJSONArray("daily");
// 获取data里的daily的第一组数据
JSONObject jsonDailyFirst = jsonDaily.getJSONObject(0);
// 获取data里的daily的第一组数据的date
String date = jsonDailyFirst.getString("date");
System.out.println("获取msg----" + msg);
System.out.println("获取status----" + status);
System.out.println("获取data----" + jsonData);
System.out.println("获取data里的city----" + city);
System.out.println("获取pm25----" + pm25);
System.out.println("获取pm25里的updateTime----" + updateTime);
System.out.println("获取data里的daily----" + jsonDaily);
System.out.println("获取data里的daily的第一组数据----" + jsonDailyFirst);
System.out.println("获取data里的daily的第一组数据的date----" + date);
//断言
Assert.assertEquals(msg, "ok");
} catch (Exception e) {
e.printStackTrace();
}
}
}
欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560
转载请注意出处,谢谢合作
浅谈JSONObject解析JSON数据的更多相关文章
- JSONObject解析json数据
首先先看一下我们要解析的json数据是什么样子的: 代码: String url="http://113.57.190.228:8001/Web/Report/GetBigMSKReport ...
- Android使用自带JSONObject解析JSON数据
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android ...
- Introduction to Structured Data json的2种形式 JAVA解析JSON数据 - JsonArray JsonObject
https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
- fastjson生成和解析json数据,序列化和反序列化数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- Java构造和解析Json数据的两种方法详解二
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
- Java构造和解析Json数据的两种方法详解一
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...
- 服务端提供的JSON数据接口与用户端接收解析JSON数据
JSON格式的服务接口:http://www.cnblogs.com/visec479/articles/4118338.html 首先来了解下JSON格式解析 json结构的格式就是若干个 键/值( ...
- Google中Gson的使用解析json数据-------学习篇
之前写过一篇Gson解析json数据的基本应用,这里不多说,直接上例子. 有兴趣的可以先阅读下之前那篇,这里附上链接: http://www.cnblogs.com/Ant-soldier/p/632 ...
随机推荐
- Weak Pair (dfs+树状数组)
Weak Pair (dfs+树状数组) 题意 这个题目是要求:一颗树上,有n个节点,给出每个节点的权值.另外给出一个值k,问有多少对节点满足: \(power[u]*power[v]<=k\) ...
- D-query SPOJ 树状数组+离线
D-query SPOJ 树状数组+离线/莫队算法 题意 有一串正数,求一定区间中有多少个不同的数 解题思路--树状数组 说明一下,树状数组开始全部是零. 首先,我们存下所有需要查询的区间,然后根据右 ...
- python学习第四十八天json模块与pickle模块差异
在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点 跨语言,体积小 缺点 只能支持 int st ...
- JEECG 深度使用培训班 周六周日公开课(一期班)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/25411023 广大技术爱好者: ...
- IIS 发布网站出现<compilation debug="true" targetFramework="4.6.1">错误
参考:http://www.mamicode.com/info-detail-1180214.html 原因是环境只安装到.net Framework 4.5 的版本(.net版本向下兼容 ) 解决方 ...
- 用Node.js原生代码实现静态服务器
---恢复内容开始--- 后端中服务器类型有两种 1. web服务器[ 静态服务器 ] - 举例: wamp里面www目录 - 目的是为了展示页面内容 - 前端: nginx 2. 应用级服务器[ a ...
- 一、Rabbit使用-安装教程
首先我去官网上面下载RabbitMQ安装包:https://www.rabbitmq.com/which-erlang.html 现在下载的版本是3.7.17 因为我erlong安装的是20.3
- <sql></sql>标签是干嘛的
<sql id="Base_Column_List"> id, emp_id, emp_name, org_id, org_name, corporate_name, ...
- fiddler常见问题
捕获https: tools>options https>decrypt https traffic :安装证书捕获客户端请求: tools>options connections& ...
- 英语单词omitting
omitting 来源——报错 [root@centos7 ~]# cp /etc/ /bin cp: omitting directory ‘/etc/’ [root@centos7 ~]# cp ...