Json
JSON
是一种轻量级的数据交换格式。采用独立于编程语言的文本格式来存储和表示数据
。其简洁和清晰的层次结构使得 JSON 成为了理想的数据交换语言;其易于人阅读和编写,同时易于机器解析和生成,可以有效的提高网络传输效率。
Json 是一种数据格式 ,和语言无关。基于此种数据格式,常用于:
- 组织数据(数据序列化) ,用于网络传输 ;
- 组织数据(数据序列化),写磁盘文件 实现数据的持久话存储(
.json后缀
);
Json 中主要有两种数据格式: Json 数组
和 Json 对象
,此两种格式可以交叉嵌套使用。
1.Json数组
Json数组使用 [] 表示,[] 里是元素,元素之间通过逗号间隔。**一个 Json 数组支持同时存在不同类型的成员,包括: **
整型、浮点、字符串、布尔类型、json数组、json对象、空值-null
。Json 数组使用非常灵活;
- Json 数组中的元素数据类型一致
//整形
[1,2,3,4]
//字符串
["靓仔","精神小伙","土狗"]
- Json 数组数据类型不一致
//和python 很像
[123,"靓仔",3.14 ,true ,null]
- Json 数组中数组嵌套使用
[
["张三",123,true,3.2 ,null],
[1,23,"hello world"],
["李四",666]
]
- Json 数组和对象嵌套使用
[
{
"liu":{
"age":18,
"high":180
"money":180000000
}
}
]
2.Json 对象
Json 对象使用{} 来描述,每个 Json 对象中可以存储若干个元素,每个元素对应一个键值对 (key :value),元素之间使用逗号间隔。
每个元素中的键值对需要注意:
- 键值(key)必须是字符串,位于同一层级的键值不要重复(因为通过键值读取对应 value 值);
- value 的类型是可选的,可根据实际需求指定,类型:
整型、浮点、字符串、布尔类型、json数组、json对象、空值-null;
使用 Json 对象描述一个人信息:
{
"Name":"Ace",
"Sex":"man",
"Age":20,
"Family":{
"Father":"Gol·D·Roger",
"Mother":"Portgas·D·Rouge",
"Brother":["Sabo", "Monkey D. Luffy"]
},
"IsAlive":false,
"Comment":"yyds"
}
3.注意事项
Json 结构虽然简单,但是再嵌套之后可以用于描述很复杂的信息,在实际使用中通常需要我们根据实际需求自定义 Json 格式用于存储项目数据;
当需要将 Json 数据持久存储在磁盘文件中, 注意:
在一个 Json 文件中只能有一个 Json数组或Json对象的根节点 ,不允许同时存储多个并列的根节点;
错误写法:
// test.json
{
"name":"luffy",
"age":19
}
{
"user":"ace",
"passwd":"123456"
}
错误原因:在一个Json文件中只能有一个 Json根节点;
正确写法:
// test.json
{
"Name":"Ace",
"Sex":"man",
"Age":20,
"Family":{
"Father":"Gol·D·Roger",
"Mother":"Portgas·D·Rouge",
"Brother":["Sabo", "Monkey D. Luffy"]
},
"IsAlive":false,
"Comment":"yyds"
}
在上面的例子中通过Json对象以及Json数组的嵌套描述了一个人的身份信息,并且根节点只有一个就是Json对象,如果还需要使用Json数组或者Json对象描述其他信息,需要将这些信息写入到其他文件中
,不要和这个Json对象并列写入到同一个文件里边;