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

如何移除Java POJO响应中的根属性并提取Data列表?

解决API响应转换后获取data列表的问题

方法一:直接提取Root实例的data字段再转换

既然你已经把JSON转成了Root实例,直接从Root里拿出data对应的List<Datum>,再把这个列表转换成List<Map<String, Object>>就行,不用把整个Root实例转成Map。

比如用Jackson的ObjectMapper:

// 假设你已经有Root实例root
ObjectMapper mapper = new ObjectMapper();
// 把data列表转成List<Map>
List<Map<String, Object>> dataMapList = mapper.convertValue(
    root.getData(), 
    new TypeReference<List<Map<String, Object>>>() {}
);

这样得到的dataMapList就是你要的[{id=1,...},...]格式,不会带data根键。

方法二:跳过Root POJO,直接解析JSON提取data字段

如果不需要Root实例,也可以直接解析JSON字符串时就提取data节点,再转成列表:

String apiResponse = "..."; // 你的API返回JSON字符串
JsonNode rootNode = mapper.readTree(apiResponse);
JsonNode dataNode = rootNode.get("data");
List<Map<String, Object>> dataMapList = mapper.convertValue(
    dataNode,
    new TypeReference<List<Map<String, Object>>>() {}
);

方法三:用Gson实现类似逻辑

如果项目用的是Gson,核心思路一致——只转换Root实例的data属性,而非整个Root:

Gson gson = new Gson();
List<Map<String, Object>> dataMapList = gson.fromJson(
    gson.toJson(root.getData()),
    new TypeToken<List<Map<String, Object>>>(){}.getType()
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:45:37