JSON是JavaScript Object Notation的简写,即JavaScript对象标记。
JSON是一种轻量级的数据交换格式。
字符串是JSON的表现形式。
JSON字符串:符合JSON格式的字符串。如:{"name": "qiyue"}
JSON字符串中的key需要加双引号。
JSON的优势:
- 易于阅读
- 易于解析
- 网络传输效率高(轻量、简洁)
- 非常适合做跨语言交换数据
反序列化
反序列化:由字符串到某一种语言的数据结构的解析过程。
json字符串(json object)对应到python中是字典形式。
方法:json.loads()
示例:
import json
json_str='{"name":"qiyue","age":18}'
student=json.loads(json_str)
print(type(student))
print(student)
#执行结果
> python p5.py
<class 'dict'>
{'name': 'qiyue', 'age': 18}
loads()函数主要功能:将json的数据类型转换为python的数据类型。
示例(json数组格式转换为python中的list数据结构):
import json
json_str2='[{"name":"qiyue","age":18,"flag":false},{"name":"妲己","age":17}]' #有两个object的数组
student=json.loads(json_str2)
print(type(student))
print(student)
#执行结果
> python p5.py
<class 'list'>
[{'name': 'qiyue', 'age': 18, 'flag': False}, {'name': '妲己', 'age': 17}]
JSON和Python中的数据格式对应

序列化
序列化:python的数据类型向JSON字符串转换的过程。
方法:json.dumps()
import json
student=[
{'name': 'qiyue', 'age': 18, 'flag': False},
{'name': '妲己', 'age': 17}
]
json_str=json.dumps(student)
print(type(json_str))
print(json_str)
#执行结果
> python p4.py
<class 'str'>
[{"name": "qiyue", "age": 18, "flag": false}, {"name": "\u59b2\u5df1", "age": 17}]
#中文输出的是unicode编码的结果
Tips:
JSON对象:如果放在javascript里面说,json对象这个说法是成立的;如果跳出语言范畴,没有json对象这个说法。
JSON并不是Javascript的附属。 |