JSON:JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。
1. JSON数据基本类型
JSON实际上是JavaScript的一个子集。在JSON中,一共就这么几种数据类型:
-
number:和JavaScript的
number
完全一致; -
boolean:就是JavaScript的
true
或false
; -
string:就是JavaScript的
string
; -
null:就是JavaScript的
null
; -
array:就是JavaScript的
Array
表示方式——[]
; -
object:就是JavaScript的
{ ... }
表示方式。
以及上面的任意组合。
并且,JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了。为了统一解析,JSON的字符串规定必须用双引号""
,Object的键也必须用双引号""
。
2. JSON数据结构
JSON结构共有2种:
(1)对象结构;
(2)数组结构;
2.1、对象结构
对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。
语法:
var jsonObj = { "键名1":值1, "键名2":值2, …… "键名n":值n }
说明:
jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。
2.2、JSON数组结构
JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。
语法:
var arr = [ { "键名1":值1, "键名2":值2 }, { "键名3":值3, "键名4":值4 }, …… ]
说明:
arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟JSON对象不同。在JSON数组中,每一对“{}”相当于一个JSON对象。而且语法都非常类似。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。
综合示例:
{ "name":"臧小峰", "age":22, "birthday":"1999-11-22", "school":"Qinghua University", "major":["sing","coding"], "girlfriend":true, "car":null, "friend":{ "name":"臧大峰", "age":22, "birthday":"1999-11-22", "school":"Beijing University", }, "comment":"JSON里不能直接使用注释,需要添加时可通过此方式。。" }
JSON有两种数据:1.无序的对象结构;2.有序的数组结构
1.无序的对象结构
无序的对象结构在不同语言中称法不同,比如在Python中称为字典,在JS中称为JSON对象……
总之就是键/值对组合形式。
2.有序的数组结构
将数组作为有序数组进行转换JSON,就可以得到有序的JSON数组结构。