详见
用于前后端交互,传数据
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码 (可以这么理解,json.dumps()函数是将字典转化为字符串) (2)json.loads()函数是将json格式数据转换为字典 (可以这么理解,json.loads()函数是将字符串转化为字典)
只要符合json格式的都能进行反序列化
import json #(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码 # (可以这么理解,json.dumps()函数是将字典转化为字符串) #(2)json.loads()函数是将json格式数据转换为字典 # (可以这么理解,json.loads()函数是将字符串转化为字典) info={"name":'alex'} ret=json.dumps(info) # 把python字典数据类型序列化成json字符串 '{"name": "alex"}' print(ret,type(ret)) #{"name": "alex"} <class 'str'> #把json字符串序列化到磁盘里(写到本地) with open("json.txt","w") as f: f.write(json.dumps(info)) #此时json.text文件里就有一条数据 {"name": "alex"} #读 with open("json.txt",'r') as f: data=f.read() data=json.loads(data) #把json字符串反序列为python中的字典数据类型 print(data,type(data)) #{'name': 'alex'} <class 'dict'> ret=json.loads('{"name":"alex"}') print(ret,type(ret)) #{'name': 'alex'} <class 'dict'> ret=json.loads("true") print(ret,type(ret)) #TRUE <class 'bool'> ret=json.loads("[12,34]") print(ret,type(ret)) # [12, 34] <class 'list'> ret=json.loads("12") print(ret,type(ret)) #12 <class 'int'> # ret=json.loads("{'name':'alex'}") # print(ret) #会报错,字典里面的键值对必须是双引号
在js中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> //js中序列号与反序列化用JSON.stringify() 与 JSON.parse() //json.dumps====JSON.stringify() json.loads======JSON.parse() var s='{"name": "alex"}'; var data=JSON.parse(s); // 此时data反序列化为object对象,也就可以使用date.name console.log(data); // {name:"alex"} console.log(typeof data); // object var c={name:"alex"}; // js中的key可以不加引号,也可以加单引号、双引号 var c=JSON.stringify(c); // {"name":"alex"} console.log(c) </script> </head> <body> </body> </html>