ObjectMapper 集合转JSON
时间: 2025-06-01 15:06:46 浏览: 21
### 使用 Jackson ObjectMapper 将集合对象转换为 JSON 字符串
在使用 Jackson 的 `ObjectMapper` 时,可以轻松地将集合对象(如 `List` 或 `Map`)转换为 JSON 字符串。以下是详细的说明和代码示例:
#### 1. 将 `Map` 转换为 JSON 字符串
通过 `ObjectMapper` 的 `writeValueAsString()` 方法,可以将一个 `Map` 对象转换为 JSON 格式的字符串。
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class MapToJsonExample {
public static void main(String[] args) throws Exception {
// 创建一个 Map 对象
Map<String, Object> map = new HashMap<>();
map.put("name", "Alice");
map.put("age", 25);
// 初始化 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();
// 将 Map 转换为 JSON 字符串
String jsonString = mapper.writeValueAsString(map);
// 输出结果
System.out.println(jsonString); // {"name":"Alice","age":25}
}
}
```
此方法展示了如何将一个简单的 `Map` 转换为 JSON 字符串[^4]。
#### 2. 将 `List` 转换为 JSON 字符串
同样,`writeValueAsString()` 方法也可以用于将 `List` 对象转换为 JSON 字符串。
```java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
public class ListToJsonExample {
public static void main(String[] args) throws JsonProcessingException {
// 创建一个 List 对象
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// 初始化 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();
// 将 List 转换为 JSON 字符串
String jsonString = mapper.writeValueAsString(list);
// 输出结果
System.out.println(jsonString); // ["Apple","Banana","Cherry"]
}
}
```
这段代码演示了如何将一个包含字符串的 `List` 转换为 JSON 数组格式的字符串[^4]。
#### 3. 自定义日期格式处理
如果集合中包含日期类型的字段,可以通过设置 `ObjectMapper` 的日期格式来确保正确的 JSON 输出。
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class DateToJsonExample {
public static void main(String[] args) throws Exception {
// 创建一个 Map 对象,并添加日期字段
Map<String, Object> map = new HashMap<>();
map.put("date", new Date());
// 初始化 ObjectMapper 实例
ObjectMapper mapper = new ObjectMapper();
// 设置日期格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mapper.setDateFormat(dateFormat);
// 将 Map 转换为 JSON 字符串
String jsonString = mapper.writeValueAsString(map);
// 输出结果
System.out.println(jsonString); // {"date":"2023-03-01 12:34:56"}
}
}
```
上述代码展示了如何自定义日期格式以避免默认格式化问题[^5]。
### 注意事项
- 确保在项目中引入了 Jackson 库的相关依赖。
- 如果集合中的对象包含复杂的数据类型(如嵌套对象或数组),Jackson 会自动递归解析这些对象并生成相应的 JSON 结构[^1]。
阅读全文
相关推荐



















