0

我想在java中构建一个类似于以下结构的JSON Object,然后使用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。

4

1 回答 1

0

首先,我将复杂的 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);

然后我将 Final 传递到我的 tostring 中。

于 2016-11-15T12:51:11.757 回答