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

向JsonArray中新增字符串时出现嵌套数组该如何解决

错误原因

你调用Json.createArrayBuilder().add(existingArray)时,add方法会将传入的JsonArray整体作为单个元素插入新数组,而非将原数组内的元素逐个追加,因此最终生成了嵌套的二维数组,不符合预期。

解决方法

通用兼容写法(适配所有Java JSON Processing API版本)

遍历已有JsonArray的所有元素,逐个添加到新的数组构建器中:

String group1 = "#group-apiTest1";
JsonArray existingArray = ["#group-apiTest2","#group-apiTest3","#group-apiTest4"]; //仅为示例写法

JsonArrayBuilder tagArrayBuilder = Json.createArrayBuilder().add(group1);
// 遍历已有数组元素逐个追加
for (JsonValue item : existingArray) {
    tagArrayBuilder.add(item);
}

JsonObject jsonRequest = Json.createObjectBuilder()
        .add("tags", tagArrayBuilder.build())
        .build();
logger.info("REQUEST - {}", jsonRequest);

简洁写法(适配Java EE 8+/Jakarta JSON Processing 1.1及以上版本)

直接调用addAll方法展开已有数组的所有元素追加:

String group1 = "#group-apiTest1";
JsonArray existingArray = ["#group-apiTest2","#group-apiTest3","#group-apiTest4"]; //仅为示例写法

JsonObject jsonRequest = Json.createObjectBuilder()
        .add("tags", Json.createArrayBuilder()
                .add(group1)
                .addAll(existingArray)
                .build())
        .build();
logger.info("REQUEST - {}", jsonRequest);

注意:add(JsonArray)是将数组作为单个元素插入,addAll(JsonArray)才是展开插入数组内的所有元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:00:02