2017-10-18 64 views
0

我有一個方法,應該返回ResponseJsonObject(與arraylist)完全一樣的本文的代碼。這是一個java @GET方法。我知道如何建立一個與jsonobjectjson.createObjectBuilderjavax.json - 使用ArrayList和一個分隔的屬性構建JsonObject

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

但我不如何建立像下面的代碼。 所以我必須做一個名爲「items」的添加,這是一個數組列表。每個項目都有四個屬性: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 
    } 
+0

這實在是很難理解什麼是你問題,請考慮檢查和糾正你的帖子文本,並且可能會添加更多代碼,你的_「方法應該返回帶有JsonObject_的Response。根據我的理解,你可能想要爲你的json創建模型類與傑克遜,爲例,然後返回到您的REST端點,我假設,像這樣'Response.status(Status.OK).entity(yourJsonRepresntObject).b uild()'。讓我們知道這是否是你想要實現的。 –

回答

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); 
+1

謝謝你的回答!我會嘗試你的解決方案。我會讓你知道它是否成功。 – user7432713

+1

您的解決方案解決了我的問題。謝謝! – user7432713