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>>(){});
相关推荐
zhangzeyuaaa6 分钟前
深入理解 Python GIL:从机制到释放时机
java·网络·python
河阿里39 分钟前
Spring AOP:企业级实战教学
java·后端·spring
lagrahhn39 分钟前
IDEA一些提效的方法
java·ide·intellij-idea
yuanpan1 小时前
Python Scrapy 入门教程:从零学会抓取和解析网页数据
java·python·scrapy
Bat U1 小时前
JavaEE|多线程(五)
java·开发语言·jvm
疋瓞1 小时前
pringBoot + 若依框架开发与部署流程
java
豆豆1 小时前
高校网站用什么CMS?站群管理+国产化适配方案
java·大数据·cms·建站系统·信创国产化·高校网站·站群cms
captain3761 小时前
JDBC(Java Data Base Connectivity)
java·开发语言
longxibo1 小时前
【flowable 7.2.0 二开之三:基于 Flowable 7.2 的审批流系统解压即用】
java·tensorflow·jar
拾-光1 小时前
LTX-Video 2.3 实战:用图片生成视频,消费级显卡也能跑的开源 I2V 模型(GPT Image 2)
java·人工智能·python·深度学习·算法·机器学习·音视频