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>>(){});
相关推荐
二十雨辰2 分钟前
[Java]-Spring面试题
java·开发语言
老马历写记11 分钟前
Maven POM 依赖管理总结
java·maven·system·pom·optional
古法安卓16 分钟前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio
蔬菜_23 分钟前
前端转全栈-day5(数组、list、set)
java·前端·数据结构·list
萧瑟余晖35 分钟前
Java深入解析篇二十二之虚拟线程
java·开发语言
OuO-237 分钟前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
油丶酸萝卜别吃1 小时前
Java 集合类全景介绍
java·开发语言
钱栈up1 小时前
"Flowable 工作流引擎进阶实战(高级篇):任务分配、流程变量与监听器"
java
豆沙沙包?1 小时前
c++中引用(P7-P11)
java·c++·算法
wuminyu2 小时前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++