例如:傳入數據,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參數是哪個來選取