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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!