fastjson map转json_Java对象转JSON咋这么头疼?不!那是你还没使用Fastjson
前言
测试同学在写测试用例的时候,每个测试用例必须包含预期结果。而对于手工测试而言,执行测试时,预期结果基本上都是人工完成。而对于自动化用例的执行,就要借助于自动化断言,一般是借助于程序实现。以接口测试而言,测试人员往往需要在接口返回的Json串中定位到自己要做断言的value。如果你的自动化测试框架是基于Java语言开发,那么你必然有Java对象与JSON相互转换的经历,如果接口返回的结果多层嵌套,转换起来更是头疼。本文就是作者将工作中经常使用的fastjson在断言中的一些用法进行总结分享,能帮助大家节省写自动化用例的时间。
介绍
fastjson是阿里的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。当然,Java处理JSON数据有三个比较流行的类库FastJSON、Gson和Jackson,以下是三者的性能对比情况。来源:https://blog.csdn.net/accountwcx/article/details/50252657 最终选择fastjson主要是其速度快、使用广泛、功能完备且使用比较简单等因素,当然其国产开源软件因素也是之一。
使用方法
1. 官网下载jar包。
https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.53/fastjson-1.2.53.jar
2. pom.xml文件引入maven依赖
com.alibabafastjsonx.x.x
常用方法
// 把字符串parse为JSONObject或者JSONArray public static final Object parse(String text); // 把字符串parse成JSONObject public static final JSONObject parseObject(String text);// 把字符串parse为JavaBean public static final T parseObject(String text, Class clazz);// 把字符串parse成JSONArray public static final JSONArray parseArray(String text); // 把字符串parse成JavaBean集合 public static final List parseArray(String text, Class clazz); // 将JavaBean序列化为字符串 public static final String toJSONString(Object object); // 将JavaBean序列化为带格式的字符串public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean转换为JSONObject或者JSONArray。public static final Object toJSON(Object javaObject); // 将日期格式化转换为字符串public static final String toJSONStringWithDateFormat(Object object,String datefo
实践
定义一个student类:
package JsonDemo;import lombok.Data;@Datapublic class Student { Student(){} Student(String name, Integer age, String phone){ this.name = name; this.age = age; this.phone = phone; } public String name; public Integer age; public String phone;}
Java对象->Json对象
// 创建一个对象Student student = new Student("软件质量保障", 30, "18888888888");// Java对象转JSON对象JSONObject jsonObject = (JSONObject) JSONObject.toJSON(student);System.out.println("Java对象转化为JSON对象\n" + jsonObject);
控制台输出
Java对象转化为JSON对象{"name":"软件质量保障","phone":"18888888888","age":30}
Java对象->Json字符串
// 创建一个对象Student student = new Student("软件质量保障", 30, "18888888888");// Java对象转换成JSON字符串String stuString = JSONObject.toJSONString(student);System.out.println("Java对象转换成JSON字符串\n" + stuString);
控制台输出
Java对象转换成JSON字符串{"age":30,"name":"软件质量保障","phone":"18888888888"}
JSON对象->JSON字符串
// 创建一个对象Student student = new Student("软件质量保障", 30, "18888888888");// 先转成JSON对象JSONObject jsonObject = (JSONObject) JSONObject.toJSON(student);// JSON对象转换为JSON字符串String jsonString = jsonObject.toJSONString();System.out.println("JSON对象转换为JSON字符串\n" + jsonString);
控制台输出:
JSON对象转换为JSON字符串{"name":"软件质量保障","phone":"18888888888","age":30}
JSON对象->Java对象
// 创建一个对象Student student = new Student("软件质量保障", 30, "18888888888");//先转成JSON对象JSONObject jsonObject = (JSONObject) JSONObject.toJSON(student);//JSON对象转换成Java对象Student studentObject = JSONObject.toJavaObject(jsonObject, Student.class);System.out.println("JSON对象转换成Java对象\n" + studentObject);
控制台输出:
JSON对象转换成Java对象Student(name=软件质量保障, age=30, phone=18888888888)
JSON字符串->JSON对象
String stuString = "{\"age\":2,\"name\":\"软件质量保障\",\"phone\":\"18888888888\"}";// JSON字符串转换成JSON对象JSONObject jsonObject1 = JSONObject.parseObject(stuString);System.out.println("JSON字符串转换成JSON对象\n" + jsonObject1);
// JSON字符串转换成JSON对象
JSONOb
ject jsonObject1 = JSONObject.parseObject(stuString);
System.out.println("JSON字符串转换成JSON对象\n" + jsonObject1);
// JSON字符串转换成JSON对象
JSONOb
j
ect jsonObject1 = JSONObject.parseObject(stuString);
System.out.println("JSON字符串转换成JSON对象\n" + jsonObject1);
控制台输出:
JSON字符串转换成JSON对象{"phone":"18888888888","name":"软件质量保障","age":2}
JSON字符串->Java对象
String stuString = "{\"age\":2,\"name\":\"软件质量保障\",\"phone\":\"18888888888\"}";//JSON字符串转换成Java对象Student student1 = JSONObject.parseObject(stuString, Student.class);System.out.println("JSON字符串转换成Java对象\n" + student1);
控制台输出:
JSON字符串转换成Java对象Student(name=软件质量保障, age=2, phone=18888888888)
复杂JSON字符串->JSONObject
String str = "{\"status\":\"success\", \"result\":{\"data\": {\"students\": [{\"age\":2,\"name\":\"软件质量保障\",\"phone\":\"18888888888\"}]}}}";JSONObject jsonObject = JSON.parseObject(str);JSONObject data = jsonObject.getJSONObject("result");JSONObject result = data.getJSONObject("data");String students = result.getString("students");System.out.println(students);
控制台输出:
[{"phone":"18888888888","name":"软件质量保障","age":2}]
附录
https://www.runoob.com/w3cnote/fastjson-intro.htmlhttps://repo1.maven.org/maven2/com/alibaba/fastjson
fastjson map转json_Java对象转JSON咋这么头疼?不!那是你还没使用Fastjson相关推荐
- java fastjson vector转为json_java对象与Json字符串之间的转化(fastjson)
public class test { public static void main(string[] args) { // 实现java对象与json字符串之间的转化 // 1. person对象 ...
- 转json_Java对象转JSON时如何动态的增删改查属性
1. 前言 日常开发中少不了 JSON 处理,少不了需要在 JSON 中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON 字符串增加额外字段 假如我 ...
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- 对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson
文章目录 一. json-lib 二. Google的Gson 1.简介 2. 配置步骤 1. MAVEN 依赖引入 2. gsonUtil 工具类 3. 排除不要序列化的熟悉注解类 Exclude ...
- gson转对象变成null_FastJson、Jackson、Gson进行Java对象转换Json的细节处理
转 https://blog.csdn.net/moneyshi/article/details/51830329 Java对象转换Json的细节处理 前言 Java对象在转json的时候,如果对象里 ...
- jsp 将java对象转json对象 (自定义EL函数)
功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现) 步骤: 1. 创建 JSP EL 工具类 2. 创建 tld 文件 3. 配置 web.xml 文件 4. 完 ...
- java对象与Json字符串之间的转化(fastjson)
1. 首先引入jar包 在pom.xml文件里加入下面依赖: <dependency><groupId>com.alibaba</groupId><artif ...
- Java中普通字符串转json_java普通对象和json字符串的互转
一.java普通对象和json字符串的互转 java对象---->json 首先创建一个java对象: 现在java对象转换为json形式: 定义了一个Student的实体类,然后分别使用了JS ...
- Java基础/利用fastjson序列化对象为JSON
利用fastjson序列化对象为JSON 参考博客:http://blog.csdn.net/zeuskingzb/article/details/17468079 Step1:定义实体类 //用户类 ...
最新文章
- 小端字节序与大端字节序
- 阿里云智能编码idea插件:Alibaba Cloud AI Coding Assistant
- 46 SD配置-销售凭证设置-分配状态参数文件到项目类型
- 关系网络实战|设备关联信息定位团伙欺诈
- 医院叫号排队系统 php,医院排队叫号系统软件介绍
- C语言程序设计,流程图
- Samba使用大全(转
- android红米升级失败怎么办,红米刷机失败怎么办?解决红米刷机失败教程
- 如何做好客户需求分析
- 【Turtle合集】提前祝大家圣诞快乐,我为大家献歌一首,叮叮当,叮叮当,穷的响叮当——快开门,我送礼物来了哟~(圣诞树代码)
- 晒往期云栖大会的照片或感想_赢2017杭州云栖大会门票
- python编程作业
- Unity开发时遇到的各种需要注意的地方
- 本科项目——51单片机多功能万年历
- 简单的基于规则的汉语拼音分词
- JSP编译指令-page
- 网络流:最大流,最小割 基本概念及算法
- 关于C语言的优秀文章
- VM-虚拟机装苹果系统
- 【主成分分析】PCA降维算法及Matlab代码实现