JSON(Javascript Object Notation),JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value)。
结构有两种:
1.对象
jsonObj = {'name':'jack','age':'30'};
2.数组(其实也是对象)
jsonObj = [{'name':'jack','age':'30'},{'name':'jar','age':'23'}];
在数据传输中使用的是字符串形式传播,但是js操作的却是json对象。
1.对象
jsonObj = {'name':'jack','age':'30'};
2.字符串(格式区别其实就是一个“ ”):
jsonStr ="{'name':'jack','age':'30'}" ;
所以在操作中会需要相互转换:
jsonStr -----> jsonObj:
var jsonObj = eval("("+jsonStr+")");
jsonObj -----> jsonStr:
var jsonStr = jsonObj.toJSONString();
使用JQ中Ajax提交获取JSON数据:
$.ajax({
type: 'POST', //发送数据类型 post或者get
url: url, //数据要发送的地址
data: data, //发送的数据{'val1':val1,'val2':val2}
dataType: json //返回数据的类型(json xml等)
success: succFunction, //数据请求成功的回调
error: errorFunction, //数据请求失败的回调
});
遍历显示JSON数据:
<body>
<div id="list"></div>
<script type="text/javascript" src="jQuery-v3.1.1.js"></script>
<script>
//假设后台获取数据如下,此数据为对象
var list = [{
"name": "张三",
"age": 18
}, {
"name": "李四",
"age": 19
}, {
"name": "张liu",
"age": 18
}, {
"name": "jack",
"age": 19
}];
//如果是字符串格式
// var jsonStr = '{
// "name": "张三",
// "age": 18
// }'
//则转化为对象
// var list = eval( '('+jsonStr+')');
//新建ul
var ul = '';
//遍历list
for(var i = 0; i < list.length; i++) {
var name = list[i].name;
var age = list[i].age;
//定义li,用于循环显示数据
var li = '';
li += "<li>" + list[i].name + "-" + list[i].age + "</li>";
ul += li;
}
//清空#list原有数据
$("#list").html('');
//#list后添加节点显示获取到的数据
$("#list").append(ul);
</script>
</body>