ObjectMapper的常用方法 (对象和JSON数据之间的转换)

复制代码
<dependency>  
    <groupId>com.fasterxml.jackson.core</groupId>  
    <artifactId>jackson-databind</artifactId>  
    <version>2.13.0</version> <!-- 请根据实际情况选择合适的版本 -->  
</dependency>
复制代码
ObjectMapper类是Jackson库中的主要类,用于在Java对象和JSON数据之间进行转换。以下是ObjectMapper的一些常用使用方法:
复制代码
1. 将JSON字符串转换为Java对象:
复制代码
String jsonString = "{\"name\":\"John\", \"age\":30}";  
ObjectMapper mapper = new ObjectMapper();  
MyClass obj = mapper.readValue(jsonString, MyClass.class);
复制代码
2. 将Java对象转换为JSON字符串:
复制代码
MyClass obj = new MyClass("John", 30);  
ObjectMapper mapper = new ObjectMapper();  
String jsonString = mapper.writeValueAsString(obj);
复制代码
3. 将JSON数组转换为Java对象数组:
复制代码
String jsonArrayString = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}]";  
ObjectMapper mapper = new ObjectMapper();  
MyClass[] objArray = mapper.readValue(jsonArrayString, MyClass[].class);
复制代码
4. 将Java对象数组转换为JSON数组:
复制代码
MyClass[] objArray = new MyClass[]{new MyClass("John", 30), new MyClass("Jane", 25)};  
ObjectMapper mapper = new ObjectMapper();  
String jsonArrayString = mapper.writeValueAsString(objArray);
复制代码
5. 将Java集合转换为JSON字符串:
复制代码
List<MyClass> objList = new ArrayList<>(Arrays.asList(new MyClass("John", 30), new MyClass("Jane", 25)));  
ObjectMapper mapper = new ObjectMapper();  
String jsonArrayString = mapper.writeValueAsString(objList);
复制代码
6. 将JSON字符串转换为Java Map:
复制代码
String jsonMapString = "{\"name\":\"John\", \"age\":30}";  
ObjectMapper mapper = new ObjectMapper();  
Map<String, Object> map = mapper.readValue(jsonMapString, new TypeReference<Map<String, Object>>(){});
相关推荐
jiayong23几秒前
Spring AI Alibaba 深度解析(三):实战示例与最佳实践
java·人工智能·spring
梁同学与Android8 分钟前
Android ---【经验篇】ArrayList vs CopyOnWriteArrayList 核心区别,怎么选择?
android·java·开发语言
ss27321 分钟前
从零实现线程池:自定义线程池的工作线程设计与实现
java·开发语言·jvm
苗壮.23 分钟前
CommandLineRunner 是什么?
java
石工记28 分钟前
windows 10直接安装多个JDK
java·开发语言
菜鸟233号29 分钟前
力扣669 修剪二叉搜索树 java实现
java·数据结构·算法·leetcode
健康平安的活着1 小时前
springboot+sse的实现案例
java·spring boot·后端
05大叔1 小时前
多线程的学习
java·开发语言·学习
小萌新上大分1 小时前
synchronized的8锁问题(区分默认用的是那把锁) 笔记云备份
java·java多线程·synchronized·synchronized关键字·synchronized用法·多线程买票问题·java锁机制
sino爱学习2 小时前
别再踩 Stream 的坑了!Java 函数式编程安全指南
java·后端