JOSN是个啥?
程序员文章站
2022-07-14 12:44:30
...
JSON概念
本质就是字符串,准确描述是一种基于键值对的字符串,是一种轻量级的数据交互格式。
类似于: 'a':'b'
作用就是用来进行前后端数据交互。
解释:
在项目开发的过程中,假设我们使用的是js进行前端数据开发,后端采用Python进行能开发,正如视图函数return不能返回字典形式,因为后端数据类型前端不能识别,后端在定义变量的时候在内存中指想一个引用,数据存在内存的一块区域中。前端的定义模式不同也就导致了无法完成数据交互。此时就需要一种实现跨语言跨平台的数据交互模式,JSON就这么诞生了,当然,可扩展标记语言(<xml></xml>)同样可以实现交互,xml标签中放置的就是需要交互的数据信息,代码量较重,提示:超文本标记语言(html)是用来渲染数据的。
JSON在传输数据的时候:
json:
data = ‘{‘age’:18}’
那么究竟如何实现前后端数据完成和JSON转换的。
后端(Python)实现形式:
使用json模块中的方法:
dumps() :把字典转换为json字符串,参数是变量。操作的是计算机内存。
dump():把字典转换为json字符串,但是其中的参数需要是文件对象,即能够进行读写操作的。操作的是硬盘。在爬虫中会使用这个方法。
loads():把json字符串转成字典,参数是变量。
load():把json字符串转成字典,但是其中的参数需要是文件对象,即能够进行读写操作的。
前端实现形式:
JSON.stringify():把对象转成json字符串
JSON.parse():把json字符串转成对象
<xml>完成转换:
使用Python中的非标准模块:parse()unparse()
实现方法1:是使用python内置标准模块
from flask import Flask
# 导入python标准模块json
import json
app = Flask(__name__)
@app.route('/')
def index():
data = {'name':'wax',
'age':18
}
# 调用标准模块的dumps()方法
return json.dumps(data)
if __name__ == '__main__':
app.run()
实现方法2:使用flask内置函数jsonify
from flask import Flask,jsonify
app = Flask(__name__)
@app.route('/json')
def index():
data = {'name':'wax',
'age':18
}
# 调用flask内置函数,可以字典转成json字符串
return jsonify(data)
if __name__ == '__main__':
app.run()
区别:方式1在浏览器的显示结果是 {'name':'wax', 'age':18}
方式2在浏览器的显示结果是{'name':'wax',
'age':18
}
显示的内容本质是一样的,但是后者的响应形式的Content-type(后端发送的数据格式):applicatiion/json;但是前者的Content-type:text/html.所以推荐使用方式2,因为其能保证在转换成json数据类型之后保证统一。虽然jsonify的本质还是使用的dumps进行转换,同时还更改了了相应的数据类型。
上一篇: 啥是IOC ?啥是DI ?
下一篇: 博客是啥?