浅谈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 ...
随机推荐
- HDU-2068 RPG的错排(组合, 错排)
RPG的错排 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 洛谷 - P3649 - 回文串 - 回文自动机
https://www.luogu.org/problem/P3649 #include <bits/stdc++.h> using namespace std; typedef long ...
- linux 调整内核优化
所谓内核优化,主要是在 linux 中针对业务服务应用而进行的系统内核参数优化,优化并无特殊的 标准,下面以常见生产环境 linux 的内核优化为例讲解,仅供大家参考: 内核调优 #vi /etc/s ...
- Linux下C语言实现ATM取款机,消息队列版本
链接:https://pan.baidu.com/s/1oBavXBuZul7ZAEBL1eYfRA 提取码:ffhg Mybank ATM取款机实验,消息队列实现本实验用的是Centos71.在服务 ...
- 2018-08-01-weekly
Algorithm 4. Median of Two Sorted Arrays What 两个排序数组的中位数 How 两个数组合并到同一个数组,然后进行排序取中间值即可 Key Codes cla ...
- dsu on tree 学习笔记
这是一个黑科技,考虑树链剖分后,每个点只会在轻重链之间转化\(log\)次. 考虑暴力是怎么写的,每次枚举一个点,再暴力把子树全部扫一边. \(dsu\ on\ tree.\)的思想就是保留重儿子不清 ...
- tensorflow函数介绍(3)
tf.nn.softmax_cross_entropy_with_logits(logits,labels) #其中logits为神经网络最后一层输出,labels为实际的标签,该函数返回经过soft ...
- Dump文件的生成
一.Windows系统的任务管理器里抓dump 启动任务管理器,选中某个进程,右键,弹出菜单"创建转储文件" 注意事项: 当你在64位Windows系统上抓32位进程的dmup文件 ...
- SQL Server查询使用键查找时锁申请及释放顺序
当然看的过程中,其实自己有个疑问: 对于键查找这类查询,会申请哪些锁,锁申请和释放的顺序是怎样的? 准备 备注:测试表仍然使用高兄文中创建的测试表testklup 在开始之前,使用dbcc ind 命 ...
- 图论 List
题目 #A 小 K 的农场 (Unaccepted) #B 信息传递 (Unaccepted) #C 最短路计数 (Accepted) #D 通往奥格瑞玛的道路 (Accepted) ...