Json
Json
Json概述
JSON :JavaScript对象表示法( JavaScript Object Notation )。
是一种轻量级的数据交换格式。它基于 ECMAScript 的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C、C++、C#、Java、JavaScript、Perl、Python、go等)。这些特性使 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成 ( 一般用于提升网络传输速率 ) 。目前,json 已经成为主流的数据格式。
JSON 解析器和 JSON 库支持许多不同的编程语言。 JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。JSON 是存储和交换文本信息的语法。比 XML 更小、更快,更易解析。
JSON 具有自我描述性,语法简洁,易于理解。
JSON数据主要有两种数据结构,一种是键/值,另一种是数组的形式来表示。
可登陆 json 中文官网,获取json相关资料: www.json.org.cn/
Json的用途
Json语法
首先,任何数据类型都可以通过json来表示。如:字符串、数字、对象、map、结构体、切片……
先来看一个简单的 JSON
{
"stars": [
{ "name":"Faye" ,"address":" 北京 " },
{ "name":"andy" ,"address":" 香港 " },
{ "name":"eddie","address":" 台湾 " },
]
}
JSON语法是JavaScript对象表示法语法的子集。
数据在键 / 值对中。数据由逗号分隔。花括号保存对象,也称一个文档对象。
方括号保存数组,每个数组成员用逗号隔开,并且每个数组成员可以是文档对象或者数组或者键值对。
JSON基于两种结构:“名称/值”对的集合(A collection of name/value pairs)。
不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyed list),或者关联数组 (associative array)。值的有序列表(An ordered list of values)。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。
上述描述可归纳为JSON三种语法:
1. 键/值对。 key :value,冒号分割。
如: "name":"Faye"
key 必须是字符串类型,键/值对儿的“值”可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
null (空值 未设置)
对象(在花括号中)
数组(在方括号中)
key 是字符串类型,标准写法需加双引号,以免有可能报错。
2. Json对象。写在 { } 中,可包含多个key、value对。用“,”分隔。
如: { "name":"Faye" ,"address":"北京" }
3 Json数组。在 [ ] 中书写, 数组成员可以是对象、值,也可以是数组。
如: { "stars":[ {"name":"Faye" ,"address":"北京" },
{ "name":"andy" ,"address":"香港" },
{ "name":"eddie","address":"台湾"}, ]
}
json格式化
可以使用在线格式化工具,验证json数据的正确性。
1. www.json.cn
2. www.json.org.cn/tools/index.htm
{
"name":"矮大紧",
"sex":"man",
"age":131,
"girls":["金莲","凤姐","码蓉","春哥"],
"成绩": [2, 14, 9, 78, 96],
"家电":{"彩电":"海尔", "洗衣机":"三星"}
}