将“JSON”发布到“ArrayList”会导致一个空列表

将“JSON”发布到“ArrayList”会导致一个空列表,json,arraylist,resteasy,Json,Arraylist,Resteasy,我在将JSON发布到ArrayList 我有一个课程计划 public class Plan { private String planId; private String planName; : : } 以及计划-计划列表的ArrayList public class PlanList { private List<Plan> plans = new ArrayList<Plan>(); :

我在将
JSON
发布到
ArrayList

我有一个课程计划

 public class Plan {
    private String planId;
    private String planName;
        :
        :
}
以及计划-计划列表的
ArrayList

public class PlanList {
    private List<Plan> plans = new ArrayList<Plan>();
        :
        :
}
我使用Postman发布以下JSON,格式与GET返回的格式相同

{
  "plans": [
    {
      "planId":"1",
      "planName":"Plan 1"
    },
    {
      "planId":"2",
      "planName":"Plan 2"
    },
    {
      "planId":"3",
      "planName":"Plan 3"
    }
  ]
}
当我点击createPlans()开头的断点时,参数plans是一个空的
列表


JSON格式是否不正确?我的REST定义有误吗?

您可以使用库中的
JSONObject
JSONArray

//instantiate plan1 
JSONObject plan1 = new JSONObject();
plan1.put("planId", 1);
plan1.put("planName", "Plan 1");

//or by passing a String if you want:
JSONObject plan2 = new JSONObject("{\"planId\":2, \"planName\":\"Plan 2\"}");

//put plan1 and plan2 in your Json array
JSONArray plans = new JSONArray();
plans.put(plan1);
plans.put(plan2);

System.out.println(plan1);
//returns: {"planName":"Plan 1","planId":1}

System.out.println(plans);
//returns: [{"planName":"Plan 1","planId":1},{"planName":"Plan 2","planId":1}]

我不清楚这是如何解决我的问题的,因为我将JSON作为字符串发布到我的列表中。我不想构建JSON对象,你只需要使用已经构建好的JSONObject和JSONArray,而不是构建Plan和PlanList类。您可以像我对plan2所做的那样,通过发布的字符串创建它们。
//instantiate plan1 
JSONObject plan1 = new JSONObject();
plan1.put("planId", 1);
plan1.put("planName", "Plan 1");

//or by passing a String if you want:
JSONObject plan2 = new JSONObject("{\"planId\":2, \"planName\":\"Plan 2\"}");

//put plan1 and plan2 in your Json array
JSONArray plans = new JSONArray();
plans.put(plan1);
plans.put(plan2);

System.out.println(plan1);
//returns: {"planName":"Plan 1","planId":1}

System.out.println(plans);
//returns: [{"planName":"Plan 1","planId":1},{"planName":"Plan 2","planId":1}]