JSON扫盲-JSON和spingmvc中的json格式传递
程序员文章站
2022-04-29 14:06:59
...
1、JSON(JavaScript Object Notation, JS 对象标记) 是一种格式!格式!格式!它的形式是字符串!字符串!字符串!
1)json的属性名必须加双引号,因为json是一种被大多数语言所接受的格式,每种语言都有自己的关键字,为了防止解析时冲突?(参考:http://blog.csdn.net/goskalrie/article/details/52151175)
2)傻傻分不清楚的json对象,真面目:严格的说,JavaScript中只有一个JSON对象,即全局JSON对象,只有stringify()和parse()两个方法,初此之外,js中任何对象都不是JSON对象,即便是使用stringify()方法序列化得到的也不是,因为JSON只是一种格式!平时所说的JSON对象,是符合JSON格式的js对象。
3)区分js对象和JSON
var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串
4)js对象和JSON互转
要实现从对象转换为 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'}
5)如何表示数组
JSON表示数组和js一样,使用[ ]表示
6)如何表示对象
JSON表示对象和js一样,使用{ }表示,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
2、springmvc中的son格式传递,参考(http://www.cnblogs.com/andyfengzp/p/6184752.html)
1)传json格式的js对象
//前端代码
function test () {
var param = {username : "yitop"};
$.ajax({
timeout : 20000,
type : "POST",
dataType : "JSON",
url : "/user/userRole.htm",
data : param,
success : function(data){
alert(data);
}
//注意:这里不能加下面这行,否则数据会传不到后台
//contentType:'application/json;charset=UTF-8',
});
}
//后端 controller
@RequestMapping(value = "userRole", method = RequestMethod.POST)
@ResponseBody
public List<Role> selectRoles(String username) throws WebTransException {
/* 逻辑代码 */
}
2)传递json字符串
//前端
function icheckDelete(url){
var parms = {
list : array //这是个数组
};
$.ajax({
dataType: "JSON",
contentType:'application/json;charset=UTF-8',//关键是要加上这行
traditional:true,//这使json格式的字符不会被转码
data: JSON.stringify(parms),
type: "DELETE",
timeout: 20000,
url: url,
success : function () {
alert("删除成功!");
},
error : function (data){
alert(data.responseText);
}
});
}
//后端 controller
@RequestMapping(value = "deleteList", method = RequestMethod.DELETE)
@ResponseBody
public String delete(@RequestBody DeleteListRequest request) throws WebTransException{
/* 逻辑代码 */
return "success";
}
//form
public class DeleteListRequest {
List<Map<String, String>> list = new ArrayList<>();
public List<Map<String, String>> getList() {
return list;
}
public void setList(List<Map<String, String>> list) {
this.list = list;
}
}
推荐阅读
-
对python中dict和json的区别详解
-
Python JSON格式数据的提取和保存的实现
-
php post json参数的传递和接收处理方法
-
第88节:Java中的Ajax和ASP.NET和TCP/IP 教程和JSON
-
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
-
详解python中的json和字典dict
-
jsp中利用jquery+ajax在前后台之间传递json格式参数
-
jsp中将后台传递过来的json格式的list数据绑定到下拉菜单select
-
JSON中optString和getString方法的区别
-
python和flask中返回JSON数据的方法