如何将JsonObjects添加到javax.json.JsonArray使用循环(动态)

eMa*_*Mad 7 java json

要将对象添加到JsonArray,请在Oracle.com上提供以下示例代码.

JsonArray value = Json.createArrayBuilder()
 .add(Json.createObjectBuilder()
     .add("type", "home")
     .add("number", "212 555-1234"))
 .add(Json.createObjectBuilder()
     .add("type", "fax")
     .add("number", "646 555-4567"))
 .build();
Run Code Online (Sandbox Code Playgroud)

实际上我有一个从数据库读取数据的Servlet,根据检索的行数,它会将数据作为JsonObject添加到JsonArray.为此我可以想到的是使用循环将JsonObject添加到JsonArray但它不起作用.这就是我在做的事情.这里,

//Not working
JsonArray jarr = Json.createArrayBuilder()
    for (int i = 0; i < posts[i]; i++)
    {
        .add(Json.createObjectBuilder()
            .add("post", posts[i])
            .add("id", ids[i]))
    }
        .build();
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用Java Json API.将对象动态添加到JsonArray的正确方法是什么.

Alb*_*ski 15

您发布的内容不是用Java编写的.

首先得到建设者:

JsonArrayBuilder builder = Json.createArrayBuilder();
Run Code Online (Sandbox Code Playgroud)

然后迭代并在循环中添加对象:

for(...) {
  builder.add(/*values*/);
}
Run Code Online (Sandbox Code Playgroud)

终于得到了JsonArray:

JsonArray arr = builder.build();
Run Code Online (Sandbox Code Playgroud)