例如:传入数据,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<Record>
List<Record> 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参数是哪个来选取