什么是JSON?
- 它全名是 JavasScript Object Notation.
- 它一种轻量级的数据交换格式。易于人阅读和编写.
- 同时它也易于机器解析和生成。
- 其他,它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)
JSON 语法规则
JSON 语法是 javascript 对象表示语法的子集。
- 数据在名称/值对中
- 数据由逗号分割
- 花括号保存对象
- 方括号保存数组
实例
JSON 名称/值对
JSON 数据对书写格式是: 名称/值对;
名称/值对包括字段名称(在双引号中), 用一个冒号分割, 然后是被值JSON 的值
JSON 的值可以是:数字(整型或者浮点型);字符串(必须在双引号中);逻辑值(true 或者false); 数组(在方括号中); 对象(在花括号中); null
{
"info" : {
"myName":"sogouo",
"myAge":20,
"married":true,
"家乡":null,
"education":[
"大学",
"高中",
"小学"
],
"skills": [
{
"languages":["html", "javascript", "css"],
"degree":3.4
},
{
"languages":["python", "php", "linux", "go", "shell"],
"degree":3.5
}
]
}
}
- JSON 对象
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔
{
"myName":"sogouo"
}
{
"language":"语言只是解决问题的工具之一, 需要学的知识很多很多",
"degree":3.5
}
- JSON 数组
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
[
{
"languages":["html", "javascript", "css"],
"degree":3.4
},
{
"languages":["python", "php", "linux", "go", "shell"],
"degree":3.5
}
]
JSON 字符串 (string)
字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
JSON 数值(number)
也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。