JSON 是轻量级的文本数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,易于人阅读和编写,同时也易于机器解析和生成,那json语法结构是怎样的?下面来我们就来给大家讲解一下。
数据在名称/值对中:json数据是由键值对构成的
键用引号(单双都行)引起来,也可以不使用引号。
值得取值类型:
1. 数字(整数或浮点数)
2. 字符串(在双引号中)
3. 逻辑值(true 或 false)
4. 数组(在方括号中) {“persons”:[{},{}]}
5. 对象(在花括号中) {“address”:{“province”:“陕西”…}}
6. null
数据由逗号分隔:多个键值对由逗号分隔
花括号保存对象:使用{}定义json 格式
方括号保存数组:[]
示例:JSON的定义格式
//1.定义基本格式 var person = {"name": "张三", age: 23, 'gender': true};
可以这样写,但是建议数据名称统一格式(不加引号或者都加同一种引号),这样便与阅读。如下例:
//2.嵌套格式 {}———> [] var persons = { "persons": [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false } ] };
//2.嵌套格式 []———> {} var ps = [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false }];
json如何获取数据?
1. json对象.键名
//1.定义基本格式 var person = { "name": "张三" , "age": 23 , "gender": true }; //获取name的值 var name = person.name; //2.嵌套格式 {}———> [] var persons = { "persons": [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false } ] }; //获取王五值 var name1 = persons.persons[2].name; //2.嵌套格式 []———> {} var ps = [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false }]; //获取李四值 alert(ps[1].name);
2. json对象[“键名”]
//1.定义基本格式 var person = { "name": "张三" , "age": 23 , "gender": true }; //获取name的值 var name = person["name"]; //2.嵌套格式 {}———> [] var persons = { "persons": [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false } ] }; //获取王五值 var name1 = persons.persons[2]["name"]; //2.嵌套格式 []———> {} var ps = [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false }]; //获取李四值 alert(ps[1]["name"]);
数组对象[索引]
如上所述
遍历:
//1.定义基本格式 var person = { "name": "张三" , age: 23 , 'gender': true }; //获取person对象中所有的键和值 //for in 循环 for (var key in person) { alert(key + ":" + person[key]); }
alert(key + “:” + person.key);
这样的方式获取不行。因为相当于 person.“name”
var ps = [ { "name": "张三" , "age": 23 , "gender": true }, { "name": "李四" , "age": 24 , "gender": true }, { "name": "王五" , "age": 25 , "gender": false }]; //获取ps中的所有值 for (var i = 0; i < ps.length; i++) { var p = ps[i]; for (var key in p) { alert(key + ":" + p[key]); } }
Json能够有效地提升网络传输效率,在实际工作中我们也经常会使用json提取数据,所以作为程序员需要掌握json的使用方法,进行更好的程序开发!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: