繁体   English   中英

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

[英]javax.json - Build JsonObject with arraylist and one separated attribute

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

 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
    }

JsonObjectBuilder接口 ,您可以通过以下方式获取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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM