JSON 语法是语法的子集 。
JSON 语法规则
JSON 语法是对象表示法语法的子集 。
JSON 名称/值对
【JSON 数据格式详解】JSON 数据的书写格式是:名称/值对 。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName" : "John"
这很容易理解,等价于这条语句:
firstName = "John"
JSON 值
JSON 值可以是:
JSON 对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
这一点也容易理解,与这条语句等价:
firstName = "John"lastName = "Doe"
JSON 数组
JSON 数组在方括号中书写:
数组可包含多个对象:
{"employees": [{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }]}
在上面的例子中,对象 "" 是包含三个对象的数组 。每个对象代表一条关于某人(有姓和名)的记录 。
JSON 使用语法
因为 JSON 使用语法,所以无需额外的软件就能处理中的 JSON 。
通过,您可以创建一个对象数组,并像这样进行赋值:
例子
var employees = [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName": "Carter" }];
可以像这样访问对象数组中的第一项:
employees[0].lastName;
返回的内容是:
Gates
可以像这样修改数据:
employees[0].lastName = "Jobs";
基础结构
JSON建构于两种结构:
1. “名称/值”对的集合(Aof name/value pairs) 。不同的语言中,它被理解为对象(),记录(),结构(),字典(),哈希表(hash table),有键列表(keyed list),或者关联数组 ( array) 。
2. 值的有序列表(Anlist of ) 。在大部分语言中,它被理解为数组(array) 。
基础示例
简单地说,JSON 可以将对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序 。这个字符串看起来有点儿古怪,但是很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构 。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表 。
表示名称 / 值对
按照最简单的形式,可以用下面这样的 JSON 表示 "名称 / 值对" :{ "": "Brett" }
这个示例非常基本,而且实际上比等效的纯文本 "名称 / 值对" 占用更多的空间:=Brett
但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了 。首先,可以创建包含多个"名称 / 值对"的 记录,比如:
{ "": "Brett", "":"", "email": "aaaa" }
从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好 。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系 。
表示数组
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性 。例如,假设您希望表示一个人名列表 。在 XML 中,需要许多开始标记和结束标记;如果使用典型的 名称 / 值 对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 -这样的形式 。
如果使用 JSON,就只需将多个带花括号的记录分组在一起:
{"": [
{"":"Brett","":"","email":"aaaa" },
{"":"Jason","":"","email":"bbbb"},
{"":"","":"","email":"cccc" }
- 解决:MySQL Load Data数据丢失问题
- 图形绘制 【数据可视化攻略】——分组箱式图结合散点图(R语言ggplot2)实
- SQL优化介绍
- 三 数据治理之死
- 数据库编程——MongoDB json
- 2、数据点标记marker
- 翻译 RPM-Red hat Package Manager文件格式解析
- 附案例数据和代码 不到70行Python代码,轻松玩转RFM用户分析模型
- 线控转向系统Carsim和Simulink联合仿真模型,带Carsim数据库
- 数据分析的未来:Smartbi教您如何增强分析