Java 简单 bean 与 json 互相转换
场景说明
最近在写一个服务,经常用到调别人接口得到json,然后需要转换为 指定bean,记录一下常用工具类
引入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency>
示例
bean
@Data public class User { private Integer id; private String name; private List<String> books; }
转换
@Test public void testjson() { User user = new User(); user.setId(1001); user.setName("金庸"); ArrayList<String> books = new ArrayList<>(); books.add("飞"); books.add("雪"); books.add("连"); books.add("天"); books.add("射"); books.add("白"); books.add("🦌"); user.setBooks(books); //使用 fastjson bean2json String jsonStr = JSON.toJSONString(user); System.out.println(jsonStr); //使用 fastjson json2bean User user1 = JSONObject.parseObject(jsonStr, User.class); System.out.println(user1); //使用 hutool bean2json String jsonStr1 = JSONUtil.toJsonStr(user); System.out.println(JSONObject.parseObject(jsonStr1, User.class)); //使用 hutool json2bean System.out.println(JSONUtil.toBean(jsonStr1, User.class)); }
执行效果:
{"books":["飞","雪","连","天","射","白","🦌"],"id":1001,"name":"金庸"} User(id=1001, name=金庸, books=[飞, 雪, 连, 天, 射, 白, 🦌]) User(id=1001, name=金庸, books=[飞, 雪, 连, 天, 射, 白, 🦌]) User(id=1001, name=金庸, books=[飞, 雪, 连, 天, 射, 白, 🦌])
JSON数组
来一个 jsonarray
@Test public void testjsonArray() { ArrayList<User> users = new ArrayList<>(); User jiny = new User(); jiny.setId(1001); jiny.setName("金庸"); ArrayList<String> books = new ArrayList<>(); books.add("飞"); books.add("雪"); books.add("连"); books.add("天"); books.add("射"); books.add("白"); books.add("🦌"); jiny.setBooks(books); User gul = new User(); gul.setId(1002); gul.setName("古龙"); ArrayList<String> bookgl = new ArrayList<>(); bookgl.add("绝"); bookgl.add("萧"); bookgl.add("流"); bookgl.add("天"); bookgl.add("武"); bookgl.add("大"); bookgl.add("小"); gul.setBooks(bookgl); users.add(jiny); users.add(gul); //hu tool 工具包 String jsonStr = JSONUtil.toJsonStr(users); System.out.println(jsonStr); List<User> list = JSONUtil.toList(jsonStr, User.class); System.out.println(users); System.out.println(list); System.out.println("--------------"); //fastjson 工具包 String jsonString = JSON.toJSONString(users); System.out.println(jsonString); JSONArray jsonArray = JSONArray.parseArray(jsonString); List<User> javaList = jsonArray.toJavaList(User.class); System.out.println(javaList); }
执行效果
[{"books":["飞","雪","连","天","射","白","🦌"],"name":"金庸","id":1001},{"books":["绝","萧","流","天","武","大","小"],"name":"古龙","id":1002}] [User(id=1001, name=金庸, books=[飞, 雪, 连, 天, 射, 白, 🦌]), User(id=1002, name=古龙, books=[绝, 萧, 流, 天, 武, 大, 小])] [User(id=1001, name=金庸, books=[飞, 雪, 连, 天, 射, 白, 🦌]), User(id=1002, name=古龙, books=[绝, 萧, 流, 天, 武, 大, 小])] -------------- [{"books":["飞","雪","连","天","射","白","🦌"],"id":1001,"name":"金庸"},{"books":["绝","萧","流","天","武","大","小"],"id":1002,"name":"古龙"}] [User(id=1001, name=金庸, books=["飞","雪","连","天","射","白","🦌"]), User(id=1002, name=古龙, books=["绝","萧","流","天","武","大","小"])]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
2023-03-13 Java 分支结构——if-else(二)
2022-03-13 Spark 分布式部署
2022-03-13 Zookeeper 使用(二)
2022-03-13 Zookeeper 使用(一)