欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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进行转换,同时还更改了了相应的数据类型。
相关标签: JSON介绍