JFinal获取数组对象参数

例如:传入数据,Jfianl后台如何接收homework数据


    "studentId": 209,
    "homework":[{
      "id":4,
      "content":"这是第一项作业"
  },{
      "id":5,
      "content":"这是第二项作业"
  }]
}

 

在用postman测试该数据接口时 用raw测试时  Jfinal后台应 用HttpKit.readData()来接收和转换数据串。具体代码如下

  String jsonStr = HttpKit.readData(getRequest());
  JSONObject jsonObject = JSONObject.parseObject(jsonStr);  //jsonObject中则是所有参数
  JSONArray homework= jsonObject.getJSONArray("homework");
//将后台获取的JSONArray 转成熟悉的List
  List result = new ArrayList<>();

  for (Object object : homework) {
      JSONObject jsonObj = (JSONObject) object;
      Record  record = new Record().setColumns(FastJson.getJson().parse(jsonObj.toJSONString(), Map.class));
            result.add(record);
     }

还可以用postman中x-www-form-urlencoded进行测试,后台接受如下:转成JSONArrray在进行操作

String homeworkStr = getPara("homework");
JSONArray jsonObject = JSONObject.parseArray(homeworkStr );

那么raw测试和x-www-form-urlencoded测试有什么区别呢

1.content-type不一致:

x-www-form-urlencoded为application/x-www-form-urlencoded:将表单内的数据转换为键值对

raw为content-type: application/json

2.传的数据类型不一致

x-www-form-urlencoded的数据是字符串。将参数拼接为键值对:studentId=209&homework=[{},{}]

raw可以上传text、json、xml、html。一般上传为json。后台接收后将json转定义好的model

针对在postman中选哪个,可以看前端ajax的contentType参数是哪个来选取

你可能感兴趣的:(java,jfinal)