前两天写一个程序发现自己对JSON数据格式理解的不是很透彻,所以记录写一篇博客梳理一下知识点。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时它也是JavaScript 原生格式。
在JSON中,有两种结构:对象和数组。大括号保存对象,中括号保存数组
JSON数据保存在名称/值对中,名称为字符串,值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在中括号中)、对象(在大括号中)、null
例如Json对象:
{"name":"张三" , "age":12,"marriage":true,"education":["襄阳一中","武汉大学","清华大学"] }
Json数组
["编号1",{"name":"张三","age":12},"天津大学"]
下面主要介绍一下Json字符串与Json对象的转化,在数据传输流程中,Json是以文本,即字符串的形式传递的,例如前台向后台传递的是字符串,而前台JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
Json字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
Json对象:
var str2 = { "name": "cxh", "sex": "man" };
JSON字符串转换为JSON对象(3种方法):
var obj = eval('(' + str1 + ')');
var obj = str1.parseJSON();
var obj = JSON.parse(str1);
后台传给前台的Json字符串通过转化成Json对象后,就可以在前台通过JS操作了,例如
alert(obj.name);
document.getElementById("name").innerHTML=obj.name ;
JSON对象转换为JSON字符串(2种方法):
var str=str2.toJSONString();
var str=JSON.stringify(str2);
例如
<script type="text/javascript">
function requestJson() {
var jsonUser = JSON.stringify({//Json对象
"username" : "张三丰",
"age" : "111",
"address" : "武汉"
});
$.ajax({
type : 'post',
url : '${pageContext.request.contextPath }/user/requestJson.do',//发送给后台函数
contentType : 'application/json;charset=utf-8',//向服务器发送数据的类型,发送是是Json字符串
data : jsonUser,
success : function(data) {//返回的data是Json字符串
var obj=eval(data);//转化为Json对象
document.getElementById("name").innerHTML=obj.username; //js操纵
}
});
}
</script>
姓名:<span id="name"></span><br/><br/>