动机
了解什么是JSON,以及JSON的结构
目的
了解JSON基本原理,下一篇使用python版本的JSON做准备
示例
{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
来源http://www.runoob.com/json/json-tutorial.html
字符串可以很轻松地写入文件并从文件中读取出来。数字可能会费点劲,因为 read() 方法只能返回字符串,这些字符串必须传递给类似 int() 的函数,它会接受类似 ‘123’ 这样的字符串并返回其数字值 123。当你想保存诸如嵌套列表和字典这样更复杂的数据类型时,手动解析和序列化会变得复杂。
Python 允许你使用称为 JSON (JavaScript Object Notation) 的流行数据交换格式,而不是让用户不断的编写和调试代码以将复杂的数据类型保存到文件中。
名为 json 的标准模块可以采用 Python 数据层次结构,并将它们转化为字符串表示形式;这个过程称为 serializing 。从字符串表示中重建数据称为 deserializing 。在序列化和反序列化之间,表示对象的字符串可能已存储在文件或数据中,或通过网络连接发送到某个远程机器。
定义
JSON(JavaScript Objection Notation)是一种轻量级的数据交换格式。JSON易于阅读和编写,同事也易于解析器解析和生成。
JSON建构于两种结构:
- “名称/值”对的集合:不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者有关联数组(associative array)。
- 值的有序列表。在大部分语言中,它被理解为数组。
大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
对象是一个无序的‘名称/值’对的集合、一个对象以‘{’(左括号)开始,‘}’(右括号)结束。每个‘名称’后跟一个‘:’(冒号);‘名称/值’对之间使用‘,’(逗号)分割。
数组是值(value)的有序集合。一个数组以‘[’(从左中括号)开始,‘]’(右中括号)结束。值之间使用‘,’(逗号)分隔。
值(value)可以是双括号括起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量的Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串。