json、js 对象、python字典三者看起来都一样很难区分,尤其是在python web前后端分离以后,三者更是有密切联系,这里我写篇博客记录一下三者的区别

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'ni', b: 'hao'}; //这是一个js对象,                                 
var json = '{"a": "ni", "b": "hao"}'; //这是一个 JSON 字符串,本质是一个字符串
//要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'ni', b: 'hao'}); //结果是 {"a": "ni", "b": "hao"}
console.log(typeof json)  //结果是  string

//要实现从 JSON字符串 转换为对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "ni", "b": "hao"}'); //结果是 {a: 'ni', b: 'hao'}
console.log(typeof json)  //结果是  object
python字典是python中的一种容器,它和js对象和json字符串没有半毛钱关系,但是在我们写接口时有时需要把字典类型的结果返回给前端,这个时候通过序列化我们可以把python字典转换成字符串,因为这个字符串符合json格式,所以我们认为:json.dump(dict)的作用是把python字典转化成json字符串
import json
dic = {'age': 23, 'job': 'student'}
#python中序列化的方法
dic_str = json.dumps(dic)
print(type(dic_str), dic_str)
# out: <class 'str'> {"age": 23, "job": "student"}
#反序列化
dic_obj = json.loads(dic_str)
print(type(dic_obj), dic_obj)
# out: <class 'dict'> {'age': 23, 'job': 'student'}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐