2017-10-18 9 views
0

JsonObject(arraylistを持つ)をResponseと返すメソッドがあります。この記事のボトムのコードとまったく同じです。これはjava @GETメソッドです。私はjson.createObjectBuilderなどでjsonobjectを構築する方法を知っている:javax.json - arraylistと1つの分離された属性を持つJsonObjectを構築する

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

しかし、私は以下のコードのようにビルドする方法いけません。 "items"という名前で追加する必要があります。これはarraylistです。すべてのアイテムには、id、name、bool、および別のarraylistのreserveItems(reserveItemsはnullでもかまいません)の4つの属性があります。この後、私はあなたがこの方法であなたのJsonObjectを得ることができ、JsonObjectBuilder interfaceから名前の長さと値687

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

何であるかを理解することは本当に難しいです、あなたのあなたの投稿のテキストを見直して修正することを検討してください。おそらく、JsonObject_で応答を返さなければならない_ "メソッドのコードを追加してください。とjacksonをexapmpleにして、それをあなたのREST Endpointに返します。これは 'Response.status(Status.OK).entity(yourJsonRepresntObject).b uild() 'それがあなたが達成しようとしているものなのかどうかをお知らせください。 –

答えて

1

でアドオンを実行する必要があります。

   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

関連する問題