You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Jackson解析JSON字符串数组且无需编写自定义模型类

使用Jackson无模型类解析字符串类型JSON数组的方案

Jackson原生支持直接将纯字符串JSON数组反序列化为集合或字符串数组,无需自定义对应的实体类,以下是两种常用实现方式:


前置准备

首先确保项目已引入Jackson核心依赖,全局初始化ObjectMapper实例(生产环境建议复用单例实例):

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

// 全局复用的ObjectMapper实例
ObjectMapper objectMapper = new ObjectMapper();

方案1:反序列化为 List<String> 集合

如果需要使用集合结构存储结果,可借助TypeReference指定泛型类型:

String jsonStr = "[\"UUID1\",\"UUID2\",\"UUID3\"]";

// 反序列化为字符串List
List<String> uuidList = objectMapper.readValue(jsonStr, new TypeReference<List<String>>() {});

// 验证输出
for (String uuid : uuidList) {
    System.out.println(uuid);
}

方案2:反序列化为 String[] 原生数组

如果只需要数组结构,直接指定数组类作为反序列化目标类型即可,无需额外类型引用:

String jsonStr = "[\"UUID1\",\"UUID2\",\"UUID3\"]";

// 反序列化为字符串数组
String[] uuidArray = objectMapper.readValue(jsonStr, String[].class);

// 验证输出
for (String uuid : uuidArray) {
    System.out.println(uuid);
}

注意事项

  • 若JSON数组中存在非字符串类型的元素,反序列化过程会抛出类型转换异常,可根据业务需要提前开启Jackson的类型容错配置
  • ObjectMapper实例创建开销较大,生产环境不要每次反序列化都新建实例,建议注册为Spring Bean或使用静态单例持有

内容的提问来源于stack exchange,提问作者Arzybek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:36:07