Java中List转JSONArray出现双层括号,如何生成单层JSON数组?
问题解决方法
问题原因
你当前用JSONUtil.putAll把整个COLUMN_NAMES列表作为单个元素存入了JSONArray,才导致出现双层嵌套的数组结构。
解决方案
直接遍历COLUMN_NAMES列表,将每个字符串元素逐个添加到JSONArray中,或者使用支持直接将List转为单层JSONArray的构造/转换方法。
示例代码(通用写法)
// 初始化目标字符串列表 List<String> COLUMN_NAMES = Arrays.asList("String_1", "String_2", "String_3", "String_4"); // 创建空JSONArray并逐个添加元素 JSONArray jsonArray = new JSONArray(); for (String column : COLUMN_NAMES) { jsonArray.add(column); } // 组装最终的JSONObject JSONObject jsonObject = new JSONObject(); jsonObject.put("fields", jsonArray); // 输出结果:{"fields":["String_1","String_2","String_3","String_4"]} System.out.println(jsonObject.toString());
简化写法(工具类支持时)
如果使用的JSON工具类支持直接用List初始化单层JSONArray,可直接用以下写法:
List<String> COLUMN_NAMES = Arrays.asList("String_1", "String_2", "String_3", "String_4"); JSONArray jsonArray = new JSONArray(COLUMN_NAMES); JSONObject jsonObject = new JSONObject(); jsonObject.put("fields", jsonArray);
这样就能得到你期望的单层数组结构的JSON结果。
内容的提问来源于stack exchange,提问作者Ven
相关产品推荐
相关产品推荐

