fastjson的使用(处理json字符串、json数组)
要求
练习1:将json字符串转化成map,字符串:{"username":"qzcsbj", "password":"123456"}
练习2:json数组转换为对象集合,[{"name":"jack","age":"18"},{"name":"tom","age":"19"}]
pom依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
将json字符串转化成map
示例:{"username":"qzcsbj", "password":"123456"}
解析后保存到map
package com.qzcsbj;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Set;
/**
* @公众号 : 全栈测试笔记
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
public class Test {
public static void main(String[] args) {
String parameters = "{\"username\":\"qzcsbj\", \"password\":\"123456\"}";
// 方式一:先解析为JSONObject,然后转换为map
// 先创建一个map
HashMap<String, String> params = new HashMap<String, String>();
// 解析json格式字符串为JSONObject(JSONObject是Map接口的一个实现类,和HashMap平级)
JSONObject jsonObject = JSONObject.parseObject(parameters);
// 也可以写为下面,因为JSONObject继承了JSON,parseObject是JSON的静态方法
// JSONObject jsonObject2 = JSON.parseObject(parameters);
// JSONObject转换为map
Set<String> keys = jsonObject.keySet();
for (String key : keys) {
params.put(key, jsonObject.getString(key));
}
// 遍历map
Set<String> username = params.keySet();
for (String name : username) {
System.out.println("key=" + name + ", value=" + params.get(name));
}
}
}

json数组转换为对象集合
[{"name":"jack","age":"18"},{"name":"tom","age":"19"}]
实体类
package com.qzcsbj;
/**
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
public class User {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
第二个参数是传入字节码,说明源码用到了反射

package com.qzcsbj.util;
import com.alibaba.fastjson.JSONObject;
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.util.*;
/**
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
public class Practice {
public static void main(String[] args) {
String parameters = "[{\"name\":\"jack\",\"age\":\"18\"},{\"name\":\"tom\",\"age\":\"19\"}]";
List<User> users = JSONObject.parseArray(parameters, User.class);
for (User user : users) {
System.out.println(user);
}
}
}
输出结果:
User{name='jack', age='18'}
User{name='tom', age='19'}
补充:如果将列表元素转换为HashMap,则:
List<HashMap> maps = JSONObject.parseArray(parameters,HashMap.class);
参考:https://www.cnblogs.com/uncleyong/p/16676791.html
原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/16683578.html
__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号