- 前后台数据交换的格式标准
- 一种优秀的“数据格式”,采用键值对的方式
- 取数据,用键
- 优势:比XML更小,更快,更容易解析
- JSON是存储和交换文本信息的语法,类似XML
- 工具:
- 网上有校验json数据,并提示错误。
- 将数据转化为json数据
- 数据在 键(名称):值 中
- 键:要加‘’
- 值:可以是字符串,数字,逻辑值,对象,数组,null
- 字符串:在‘’中
- 数字:整数或者浮点数,不加‘’
- 逻辑值:true或false
- 对象:{}
- 数组:[]
- null
- 对象和数组可嵌套
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
var people={"name": "John Doe", "age": 18, "address": {"country" : "china", "zip-code": "10000"}}
var people=[{"firstName": "Brett", "lastName":"McLaughlin"},
{"firstName":"Jason","lastName":"Hunter"}]
- for in ——对键(名称)的获取
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "<br>";
}
- for in —— 对值(value)的获取
myObj = {
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
};
for (i in myObj.sites) {
x += myObj.sites[i] + "<br>";
}
输出:
Google
Runoob
Taobao
myObj.sites[1] = "Github";
delete myObj.sites[1];
var x='';
var myObj = {
"name":"网站",
"num":3,
"sites": [
{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
{ "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
{ "name":"Taobao", "info":[ "淘宝", "网购" ] }
]
}
var arr = myObj.sites;
/* for (i in myObj.sites) {
x += "<h1>" + myObj.sites[i].name + "</h1>";
for (j in myObj.sites[i].info) {
x += myObj.sites[i].info[j] + "<br>";
}
}
*/
$.each(arr,function (i,item) {
x += "<h1>" + item.name + "</h1>";
$.each(arr[i].info,function (j,innerItem) {
x +=innerItem + "<br>";
})
})
document.getElementById("demo").innerHTML = x;
<body>
<h2>从 JSON 对象中创建 JavaScript 对象</h2>
<p id="demo"></p>
<script>
var jsonStr = '{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }';
var obj = JSON.parse(jsonStr);
document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
</script>
</body>
<h2>将 JavaScript 对象转换为 JSON 字符串</h2>
<p id="demo"></p>
<script>
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>