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

如何使用HashMap构造复杂JSON结构,无需依赖Jackson、GSON等第三方库

用HashMap构造嵌套、数组类型JSON的实现方法

首先明确JSON结构与Java原生集合的对应关系:

  • 键值对形式的JSON对象({}包裹)对应Map<String, Object>
  • 有序列表形式的JSON数组([]包裹)对应List<Object>
  • 字符串、数字、布尔值等基础类型直接作为值存入集合即可

目标JSON对应的正确实现代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

// 1. 构造JSON根对象
Map<String, Object> jsonRequest = new HashMap<>();

// 2. 构造根节点下的customer对象
Map<String, Object> customerMap = new HashMap<>();

// 3. 构造address数组内部的单个地址对象
Map<String, String> addressItem = new HashMap<>();
addressItem.put("address", "Blah");

// 4. 构造address数组(用List实现)
List<Map<String, String>> addressList = new ArrayList<>();
addressList.add(addressItem);

// 5. 按层级组装结构:先把数组塞到customer对象里
customerMap.put("address", addressList);
// 6. 把customer对象塞到根节点
jsonRequest.put("customer", customerMap);
// 7. 添加根节点的anotherThing字段
jsonRequest.put("anotherThing", "thing");

之前代码的问题说明

  • 层级结构错误:你把address对象直接放到了根节点,实际要求address数组属于customer对象的内部字段
  • 没有用List实现数组结构:JSON中的[]结构需要用List实现,你直接用Map存储,导致输出为对象而非数组
  • 字段不匹配:目标JSON根节点没有owner字段,你额外添加了该字段,且该字段对应的OwnerMap没有填入任何值,输出为空对象
  • 变量大小写错误:Java是大小写敏感语言,你代码中定义的变量是addressMap,调用时写的是addressmap,会导致编译错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:57:03