JSON
- 简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。简单地说,JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从web客户端传递给服务器端程序。JSON具有良好的可读性和便于快速编写的特性,适合于服务器与JavaScript客户端的交互,是目前网络中主流的数据传输格式之一,应用十分广泛。
二、JSON的特点
1、便于阅读和书写
除了JSON格式,还有一种数据传输格式XML,相对于XML,JSON更加便于阅读和书写。
2、独立于编程语言
JSON完全独立于编程语言,几乎所有的编程语言和开发环境中,都有解析和生成JSON字符串的库,比如:
# C
Jansson、cJson
#C++
jsonCpp、JSON for Modern C++
#Java
Json-lib、org-json
#Android
Gson、FastJson
#Qt
QJsonxxx
3、网络传输的标准数据格式
三、JSON的两种数据格式
JSON有两种数据格式
- JSON对象
- JSON数组
规则:大括号包裹的是JSON对象,中括号包裹的是JSON数组
1、JSON数组
JSON数组格式:
[元素1, 元素2, 元素3, ... 元素n ]
类似于C/C++中的数组,元素之间以逗号分隔
不同的是,JSON数组中的元素可以是不同的数据类型,包括:整形、浮点、字符串、布尔类型、JSON数组、JSON对象、空值
JSON数组中的元素是同一类型
#元素类型都是数字
[1, 2, 3, 4]
#元素类型都是字符串
[“Spring”, “Summer”, “Autumn”, “Winter”]
JSON数组中的元素是不同类型
[1, 2, 5, “hello”, true, false, null]
JSON数组的嵌套
[
[1, 2, 3, 4],
[“Spring”, “Summer”, “Autumn”, “Winter”],
[1, 2, 5, “hello”, true, false, null]
]
JSON数组的嵌套JSON对象
[
{
“name”: “Tom”,
“age”: 18,
“gender”: “male”
},
{
“name”: “Tom”,
“age”: 18,
“gender”: “male”
}
]
2、JSON对象
JSON对象格式:
{
“key1”: value1,
“key2”: value3,
“key3”: value3
}
JSON对象内部使用键值对的方式来组织
还可以嵌套JSON对象和JSON数组
{
“name”: “China”,
“info”: {
“capital”: ”beijing”,
“asian”: true,
“founded”: 1949
},
“provinces”: [{
“name”: “shandong”,
“capital”: “jinan”
},
{
“name”: “zhejiang”,
“capital”: “hangzhou”
}
]
}
四、JSON在线解析
Json.cn