将“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}]