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

Java中将ArrayList内容转为JSONArray避免双层嵌套方括号问题问询

问题原因

你当前写法是先创建了空的JSONArray对象,再调用put方法把整个getFields ArrayList作为单个元素塞进了数组,自然就会出现外层多一层方括号的嵌套情况。
如果你先把ArrayList转为字符串再传入,JSON库会把整段字符串识别为普通字符串值,自动转义内部的双引号,所以会出现多余的反斜杠,不推荐这种实现方式。

解决方案

方案1:直接使用JSONArray构造方法(适配org.json等主流JSON库)

绝大多数Java JSON库的JSONArray都提供了直接接收集合类的构造方法,你直接把getFields作为参数传入构造方法即可,不需要手动调用put:

// 直接把ArrayList传入构造方法,会自动把集合内的所有元素填充到JSONArray中
JSONArray jsArray = new JSONArray(getFields);

该写法生成的jsArray就会是你预期的单层数组结构。

方案2:遍历集合逐个添加(全库兼容通用写法)

如果你用的JSON库没有提供接收集合的构造方法,可以遍历ArrayList的元素逐个插入到JSONArray中:

JSONArray jsArray = new JSONArray();
for (Object fieldItem : getFields) {
    jsArray.put(fieldItem);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:57:01