1.json介绍
JSON:JavaScript 对象表示法(JavaScript Object Notation)--简称JSON
(定义)轻量级文本数据交换格式
JSON独立于语言(个人理解:json语法是js对象表示语法的子集,又因为js在前端网页中是被包含有js解析器的浏览器所解析的,所以它在不同的语言平台中是可以用来做数据的交互的)
JSON 是存储和交换文本信息的语法。类似XML。
JSON比XML更小、更快、更易解析。
2. JSON 语法规则
(再次强调,JSON语法是JavaScript对象表示语法的子集,故他们之间存在相似之处,所以可以使用eval()函数使json 转 换为js对象,但不推荐使用eval()函数)
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
2.1 JSON名称/值对包括字段名称(在双引号中,可以理解为是字符串),后面写一个冒号,然后是值:
"myName" : "张星宇"
这个等价于js语句如下:
myName = "张星宇"
2.2 JSON 值
JSON的值的类型可以是
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true或false)
- 数组(在方括号中 如:["张星星", 100, "仙女山"])
- 对象(在花括号中 如:{ "name" : "张星星" ,"age" : 100 , "address" : " 仙女山" })
- null
3 JSON 对象
json 对象在花括号中书写:
对象可以包含多个名称/值对
"firstName" : "李欣" , "lastName" : "李佳欣"
这一点也容易理解,与这条javascript 语句等价:
firstName = "李欣"
lastName = "李佳欣"
4 JSON 数组
json数组在方括号中书写:
数组可包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
总结:
我们可以这样去理解他们:
结合php中的概念,将数组分为3中类型,
- 索引数组 :带有数字索引的数组
- 关联数组 :带有指定键的数组
- 多维数组 :包含一个或多个数组的数组(这个可以理解为map)
js数组与json数组 区别
js数组([])可以理解为 索引数组 ,可以使用for 遍历 通过索引位来得到值,如:jsArray[0]
json数组({})可以理解为 关联数组 , 以(名称/值)键值对形势存在,通过'.'运算符
+ 键名称来获取值,
如:jsonArray.name
多维数组可以理解为map,如下
var tt={
"people01": [
{ "name":"李星星" ,"sex":"男" , "age":33 }],
"people02": [
{ "name":"王雨" ,"sex":"女" , "age":23 }],
"people03": [
{ "name":"John" ,"sex":"男" , "age":33 }]
}
文本:专指不含格式信息的字符或文档
字符串在有时候可以理解为文本
额外补充:
文字、文本和字符,三者的区别和联系?
文字: 古代指单个汉字。在现代信息化技术中,文字的概念扩大了,成为各种西文、中午的统称。
字符: 文字和符号的统称,是信息化技术载体的基本单位。如:字母、汉字、标点符号、运算符号、特殊符号等。
文本: 不含格式信息的字符或文档。比如:记事本中的字符是纯文本,因为它不包含字体、字号、段落格式等信息。