Создать вложенный объект JSON в Java и передать его как запрос с помощью метода RestPost?
Я хочу построить объект JSON, похожий на следующую структуру в Java, а затем передать его как запрос с помощью метода 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 Object(A1) в качестве ответа, аналогично мне нужно отправить несколько JSON Object s, которые я создал (A2, A3, A4, A5) в ответе для успешного POST .
1 ответ
Сначала я превращаю свой сложный JSON в Java, как это,
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);
и затем я передаю Финал в мою тострину.