Создать вложенный объект 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);

и затем я передаю Финал в мою тострину.

Другие вопросы по тегам