fastjson的使用(处理json字符串、json数组)
要求
练习1:将json字符串转化成map,字符串:{"username":"qzcsbj", "password":"123456"}
练习2:json数组转换为对象集合,[{"name":"jack","age":"18"},{"name":"tom","age":"19"}]
pom依赖
1 2 3 4 5 6 | <!-- 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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"}]
实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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 + '\ '' + '}' ; } } |
第二个参数是传入字节码,说明源码用到了反射
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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); } } } |
输出结果:
1 2 | User{name= 'jack' , age= '18' } User{name= 'tom' , age= '19' } |
补充:如果将列表元素转换为HashMap,则:
1 | 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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-09-11 【转】idea与eclipse项目相互导入的过程