.ajax dataType :接收到服务器数据的格式
contentType :application/x-www-form-urlencoded
(默认),数据格式是键值对的形式key=fdsa&lang=zh
,一般是blob,file和String三种
GET请求是把数据直接放在url中
POST请求是把数据放在请求体中
contentType: 'application/json'
:类型是text文本,解决一些复杂的数据,比如带嵌套类型JSON。
1.带有嵌套数组的数据传输,如保存方法
默认格式传输格数据:
data:{id:'1010',array:JSON.stringify(array)}
后台接受时使用字符串类型的数据接收arrayString,
再进行转换
List<Map> dataList = JSON.parseArray(arrayString, Map.class);
// com.alibaba.fastjson.JSON;
或者
List divCodes= JSONArray.parseArray(request.getParameter("divCodes"));
JSON格式传输数据:
data : JSON.stringify(data),
contentType : 'application/json',
dataType : 'json',
用 JSON.stringify序列化要发送的数据,后台controller接收格式:
@RequestBody Object obj 参数接收传过来的字符串
LinkedHashMap temp = (LinkedHashMap) obj;//把字符串对象强转为map集合,就可以取数了
List<Map<String, Object>> itemList = (List<Map<String, Object>>) temp.get("itemDataTable");
2.JSON 和 JS 对象互转
要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'
要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
网友评论