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。
フィールドが配列の場合は類似オブジェクト、配列の見た目は奇数、フィールドの場合と同じように複数のオブジェクトを1つの単一オブジェクトにバインドできます。 – jos
@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
YES "フィールド":[{ "SESSION_SESSIONNUMID": "500"、 "SESSION_STATUS": "BP"、 "SESSION_DESCRIPTION": "更新"、 "SESSION_SESSIONDATE": "2016年7月20日"、 "SESSION_CURRENCY_TYPE": "USD" } ] – jos