javax.json - 使用arraylist和一个单独的属性构建JsonObject

时间:2017-10-18 17:09:38

标签: java json arraylist response jsonobjectrequest

我有一个方法应该返回带有Response(带有arraylist)的JsonObject,就像本文的bottem中的代码一样。这是一个java @GET方法。我知道如何使用jsonobject构建json.createObjectBuilder,如:

 JsonObject jo = Json.createObjectBuilder().add("name", "item").add("user", user.getUser()).build();

但我不知道如何构建如下代码。 所以我必须使用名称“items”进行添加,这是一个arraylist。每个项目都有四个属性:id,name,bool和另一个arraylist reserveItems(reserveItems可以为null)。在此之后,我必须使用名称长度和值687进行添加。

{
              "items" :[
                           {
                              "id"         : 1,
                              "name"       : "Item1",
                              "bool"       : true,
                              "reserveItems": []
                           },
                           {
                              "id"         : 2,
                              "name"       : "Item2",
                              "bool"       : false,
                              "reserveItem": []
                           }
              ],
              "length"  :687
    }

1 个答案:

答案 0 :(得分:1)

JsonObjectBuilder interface,您可以通过以下方式获取JsonObject:

                JsonObject value = Json.createObjectBuilder()
                .add("items", Json.createArrayBuilder()
                        .add(Json.createObjectBuilder()
                                .add("id", 1)
                                .add("name", "Item1")
                                .add("bool", true)
                                .add("reserveItems", Json.createArrayBuilder())
                        )
                        .add(Json.createObjectBuilder()
                                .add("id", 2)
                                .add("name", "Item2")
                                .add("bool", false)
                                .add("reserveItems", Json.createArrayBuilder())
                        )
                )
               .add("length", 687)
               .build();

               System.out.println(value);