关于在controller中json数据与对象,map,list的相互转换 jackson
关于在controller中json数据与对象,map,list的相互转换
步骤:
1.导入jackson相关jar包
- jackson-annotations.jar
- jackson-core.jar
- jackson-databind.jar
2.创建jackson的核心对象:ObjectMapper
ObjectMapper mapper = new ObjectMapper();
3.调用mapper的相关方法
对象转json
User user = new User("Tom","沈阳");
String json = mapper.writeValueAsString(user);
System.out.print(json); //输出:
Map<String,String>转json
HashMap<String,String> map = new HashMap<String,String>();
map.put("name","Kris");
map.put("city","沈阳");
String json = mapper.writeValueAsString(map);
System.out.print(json); //输出:{"city":"沈阳","name":"Kris"} (HashMap是无序的)
Map<String,Object>转json
Map<String,User> map = new HashMap<String,User>();
map1.put("01",new User("Tom","沈阳"));
map1.put("02",new User("Kris","上海"));
String json = mapper.writeValueAsString(map1);
System.out.println(json);
输出:
{
"01":{"name":"Tom","city":"沈阳"},
"02":{"name":"Kris","city":"上海"}
}
ArrayList转为json
ArrayList al = new ArrayList();
al.add("Tom");
al.add("沈阳");
String json = mapper.writeValueAsString(al);
System.out.print(json); //输出:["TOM","SHENYANG"]
al.add("Tom");
al.add("沈阳");
String json = mapper.writeValueAsString(al);
System.out.print(json); //输出:["TOM","SHENYANG"]
ArrayList转为json
ArrayList al = new ArrayList();
al.add(new User("Tom","沈阳"));
al.add(new User("Kris","上海"));
String json = mapper.writeValueAsString(al);
System.out.print(json);
输出:
[
{"name":"Tom","city":"沈阳"},
{"name":"Kris","city":"上海"}
]
al.add(new User("Tom","沈阳"));
al.add(new User("Kris","上海"));
String json = mapper.writeValueAsString(al);
System.out.print(json);
输出:
[
{"name":"Tom","city":"沈阳"},
{"name":"Kris","city":"上海"}
]
json转对象
String json = "{"name":"Tom","city":"沈阳"}";
User user = mapper.readValue(json, User.class);
System.out.println(user);
json转map<String,String>
HashMap<String,String> map = mapper.readValue(json, HashMap.class);
System.out.println(map);
json转map<String,Object>
Map<String,User> map= mapper.readValue(json, HashMap.class);
System.out.println(map);
json转list
ArrayList list= mapper.readValue(json, ArrayList.class);
System.out.println(list);
System.out.println(list);
json转list
List list= mapper.readValue(json, ArrayList.class);
System.out.println(list);
System.out.println(list);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)