JOSN是个啥?

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进行转换,同时还更改了了相应的数据类型。

猜你喜欢

转载自blog.csdn.net/weixin_43617255/article/details/83821927