【ObjectMapper/Json】Json转字符串数组和对象数组
【ObjectMapper的依赖】
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.4</version> </dependency>
【待处理的json文】
{ "name": "Moft", "count": 100, "nicknames": [ "Microsoft", "moft", "Mft", "Bill's company" ], "emps": [ { "id": 1, "name": "Andy" }, { "id": 2, "name": "Bill" }, { "id": 3, "name": "Cindy" }, { "id": 4, "name": "Dougalas" } ] }
【读取和处理程序】
RestTemplate restTemplate = new RestTemplate(); String json = restTemplate.getForObject("http://localhost:8080/showWelcome/",String.class); ObjectMapper mapper = new ObjectMapper(); JsonNode root = mapper.readTree(json); JsonNode nickNode=root.get("nicknames"); // json转数组 String json1=nickNode.toString(); System.out.println(json1); List<String> ls1 = mapper.readValue(json1, List.class); for(String nick:ls1){ System.out.println(nick); } JsonNode empsNode=root.get("emps"); // json转对象数组 String json2=empsNode.toString(); System.out.println(json2); List<Employee> ls2 = mapper.readValue(json2, new TypeReference<List<Employee>>(){}); for(Employee employee:ls2){ System.out.println(employee); }
【Employee类】
package com.hy; public class Employee { private int id; private String name; public Employee() { this(-1, ""); } public Employee(int id,String name) { this.id=id; this.name=name; } public String toString(){ return "EMP:"+id+"_"+name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
【输出】
["Microsoft","moft","Mft","Bill's company"] Microsoft moft Mft Bill's company [{"id":1,"name":"Andy"},{"id":2,"name":"Bill"},{"id":3,"name":"Cindy"},{"id":4,"name":"Dougalas"}] EMP:1_Andy EMP:2_Bill EMP:3_Cindy EMP:4_Dougalas
END
分类:
Java.JSON
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-03-03 zt:HttpUrlConnection使用详解
2020-03-03 使用HttpUrlConnection访问www.163.com遇到503问题,用设置代理加以解决
2019-03-03 【Canvas与艺术】模拟五个桌球在球桌上进行完全弹性碰撞
2019-03-03 [Canvas与艺术]带尾迹的下雪效果
2019-03-03 【Canvas与诗词】夏日绝句 李清照
2019-03-03 【Canvas与光阑】四条C形色带填满一个圆/环形
2019-03-03 【Canvas与艺术】自制朝阳电脑桌面(1920*1080)