2016-11-14 8 views
0

Javaで次のようなJSONオブジェクトを作成し、それをrestPostメソッドを使用してリクエストとして渡したいとします。JavaでネストされたJSONオブジェクトを作成し、RestPostメソッドを使用してリクエストとして渡しますか?

{ 
     "fields": [ 
     { 
      "SESSION_SESSIONNUMID": "500" 
     }, 
     { 
      "SESSION_STATUS": "BP" 
     }, 
     { 
      "SESSION_DESCRIPTION": "Updated" 
     }, 
     { 
      "SESSION_SESSIONDATE": "2016-07-20" 
     }, 
     { 
      "SESSION_CURRENCY_TYPE": "USD" 
     } 
    ] 
    } 

だからこれは、私がやったことある

public void Insert() { 
    try { 
    String lstrPath = Constants.MIP_BASE_URI + "/api/te/JV/sessions"; 

    System.out.println("Path for creation of session :\n " + lstrPath); 

    //create the JSON object containing the new contacts details. 
    JSONObject array = new JSONObject(); 
    JSONObject object = new JSONObject(); 

    JSONObject A1 = new JSONObject(); 
    A1.put("SESSION_SESSIONNUMID " , "100 "); 

    JSONObject A2 = new JSONObject(); 
    A2.put("SESSION_STATUS " , "BP"); 

    JSONObject A3 = new JSONObject(); 
    A3.put("SESSION_DESCRIPTION " , "CODING"); 

    JSONObject A4 = new JSONObject(); 
    A4.put("SESSION_SESSIONDATE" , "2016-10-20"); 

    JSONObject A5 = new JSONObject(); 
    A5.put("SESSION_CURRENCY_TYPE" , "USD"); 
    object.put("def", array); 

    System.out.println("Passing request :\n" + A1.toString(1)); 

    JSONObject ljsonResponse = RestCalls.RestPost(lstrPath, 
    A1, Constants.REQUESTING_CLASS.MIP); 

    if (ljsonResponse != null) { 
    Constants.MIP_TOKEN = ljsonResponse.getString("token"); 
    } 
    System.out.println("Token from response: " + Constants.MIP_TOKEN); 
     Constants.MIP_AUTH_HEADER = new BasicHeader("Authorization-Token", 
     Constants.MIP_TOKEN); 

    } catch (JSONException ex) { 
     Logger.getLogger(ConnectToMip.class.getName()).log(Level.SEVERE, null,ex); 
    } 
    } 

そして今、問題は上記のコードでは、私がセッションを作成するために必要な複数のJSONオブジェクトを作成することができていますが、今、私はできないのですということです複数のJSONオブジェクトをレスポンスにどのように送信(パス)するのかを理解する。

注:以下のコードの最後の行では、1つのJSONオブジェクト(A1)をレスポンスとして送信します。同様に、作成した複数のJSONオブジェクト(A2、A3、A4、A5)成功したPOST。

+0

フィールドが配列の場合は類似オブジェクト、配列の見た目は奇数、フィールドの場合と同じように複数のオブジェクトを1つの単一オブジェクトにバインドできます。 – jos

+0

@jos:このようなものを作成することを意味しましたか?、JSONObject ljsonPost = new JSONObject();ljsonPost.put( "SESSION_SESSIONNUMID"、 "515");ljsonPost.put( "SESSION_STATUS"、 "BP");ljsonPost.put( "SESSION_DESCRIPTION"、 "Updated"); ljsonPost.put( "SESSION_SESSIONDATE"、 "2016-11-09");ljsonPost.put( "SESSION_CURRENCY_TYPE"、 "USD"); – Rick

+0

YES "フィールド":[{ "SESSION_SESSIONNUMID": "500"、 "SESSION_STATUS": "BP"、 "SESSION_DESCRIPTION": "更新"、 "SESSION_SESSIONDATE": "2016年7月20日"、 "SESSION_CURRENCY_TYPE": "USD" } ] – jos

答えて

0

まず私は、このようなJavaに私の複雑なJSONに変換

JSONArray json = new JSONArray(); 
JSONObject Final = new JSONObject(); 

JSONObject A1 = new JSONObject(); 
     A1.put("SESSION_SESSIONNUMID" , "212"); 

     JSONObject A2 = new JSONObject(); 
     A2.put("SESSION_STATUS" , "BP"); 

     JSONObject A3 = new JSONObject(); 
     A3.put("SESSION_DESCRIPTION" , "CODING"); 

     JSONObject A4 = new JSONObject(); 
     A4.put("SESSION_SESSIONDATE" , "2016-10-20"); 

     JSONObject A5 = new JSONObject(); 
     A5.put("SESSION_CURRENCY_TYPE" , "USD"); 

    json.put(A1); 
    json.put(A2); 
    json.put(A3); 
    json.put(A4); 
    json.put(A5); 

     Final.put("fields",json); 

し、私は私のtoStringに最終パス。

関連する問題