前言
JSON--目前大部分的接口自动化测试,参数的传入和响应的输出都是JSON。
用Java来解析JSON:目前国内不管是自动化测试还是测试开发,Java一直都是大众语言,也就是首选语言。使用Python的公司还是太少,而且是少量使用在运维自动化上面。加上,有些时候,面试,大部分都是看你JAVA的编程能力,很多面试你的人,TA都不懂Python,所以,选择用Java来学习JSON。
什么是JSON
JSON(JavaScript Object Notation)是一种与开发语言无关的,轻量级的数据格式。这里提下XML,XML语言冗余,解析数据太慢。所以,在前端开发中,JavaScript语言最早使用了JSON这种数据格式,现在,几乎你知道的每门开发语言都支持JSON的API。
JSON的特点
1. 与开发语言无关
2. 容易阅读和编写,程序容易解析和生成
JSON格式
JSON有点像很多语言中的字典,由key 和value得方式组成
{
"title" : "JSON入门-Java篇",
"author" : "Anthony",
"author" : ["JSON基础","JSON常用处理方法介绍"],
“time” : {
“value” : 2017,
“unit” : “天”
}
}1.多对到括号是成对出现,支持嵌套
2.除了最后一个元素,其他元素后面都加上逗号
3.value部分如果是字符串,一定要用引号引用起来,如果是数字,直接写数字就可以
JSON数据类型
JSON中数据类型也分基本数据类型和数据结构类型。
1)数据结构类型
上面的花括号{}和中括号[]
花括号表示是结构体类型(object)
中括号表示是数组类型(array)
2)基本数据类型
有5中基本数据类型:string, number, true, false, null
其中,字符串类型就是用双引号包裹的,数字类型,直接写数字就可以,如果数字用双引号,就变成了字符串。true和false是布尔型,还有一种为空,用关键字null表示。
在json格式中,不支持写注释
-.名字叫张三(字符串)
-.年龄是24岁半(数字)
-.生日是19xx年xx月xx日(字符串)
-.毕业学校是蓝翔技校(字符串)
-.专业是:理发和开挖掘机(数组)
-.没有车(bool)
-.没有房子(bool)
-.也没有女朋友(bool)
“name” : “张三”,
“age” : 24.5,
“birthday" : "19xx-xx-xx",
“school” : “蓝翔技校”,
“major” : ["理发师", "挖掘机"],
“car” : false ,
“has_hourse” : false,
“has_girlfriend : false
用json.org来构建JSON数据并输出
如何用Java代码来构造这个JSON数据?
主要介绍一个json.org库,通过这个库提供的方法,在Eclipse中写一个简单的
java程序来测试下JSON的构造和输出。
1.新建eclipse项目
2.下载json.org.jar
(1)http://www.json.org/
(2)点击JSON-java后页面
跳转到GitHub上,点击最
下方的链接
(3)选择想要版本jar包
3.把下载的文件json-20170516.jar添加到项目Build path
4.新建一个Java测试类:put方法是给JSON对象添加key和value的
JSONObject zhangsan = new JSONObject();
zhangsan.put("name", "张三");
zhangsan.put("age", 25.2);
zhangsan.put("birthday", "1991-06-08");
zhangsan.put("school", "蓝翔技校");
zhangsan.put("major", new String []{"理发师", "挖掘机"});
zhangsan.put("car", false);
zhangsan.put("has_girlfriend", false);
zhangsan.put("hourse", false);
System.out.println(zhangsan.toString());
用HashMap来构建JSON
Map
lisi.put("name", "李四");
lisi.put("age", 27.2);
lisi.put("birthday", "2001-01-01");
lisi.put("school", "浪潮大学");
lisi.put("major", new String []{"程序员", "架构师"});
lisi.put("car", false);
lisi.put("has_girlfriend", false);
lisi.put("hourse", false);
System.out.println(new JSONObject(lisi).toString());
JavaBean来构造JSON
JavaBean是可复用的平台独立的软件组件
生成get和set方法
直接引用bean包,里面的get方法set方法
解析json文件
1.构造一个test.json文件
2.现在commons-io.jar文件,并放到项目build path
3.新建一个ReadJSON.java文件
File file = new File("./test.json");
// 通过 commons-io 里方法读取文件内容
//String content = FileUtils.readFileToString(file, "utf8");
String content = FileUtils.readFileToString(file, "gbk");
// 转换JSON对象进行处理
JSONObject jsonObject = new JSONObject(content);
// 根据getString()获取姓名
if (!jsonObject.isNull("name")) {
// 根据getString()获取姓名
System.out.println("姓名是:" + jsonObject.getString("name"));
}