12.6 返回json的纯后台
json是一种字符串序列,它遵循“键:值”这样的格式,现在已经成为了一种通用的数据传输格式,下面就是一个json字符串:
[{ "code":"010100", "parentCode":"010000", "serial":"1.1 ", "level":2, "even":false, "name":"如何学习java", "gotChildren":"false", "id":"726", "chapterTitle":"1.1 如何学习java", "child":"false"},{ "code":"010200", "parentCode":"010000", "serial":"1.2 ", "level":2, "even":true, "name":"Java编程环境", "gotChildren":"false", "id":"187", "chapterTitle":"1.2 Java编程环境", "child":"false"}]
通常用大括号表示一个对象,用方括号表示数组。上面的字符串,表示一个数组,它有两个对象,每个对象,都有code、parentCode、serial、level等属性。
1.所有属性都是“键:值”的格式
2.每个键值对用逗号隔开
前端后台技术分开后,json已经成为了前后端数据交流的标准格式。一般来说,前端发起http请求,后台接受到请求后发送json数据,前端接受到数据后填入页面。后台不再负责页面的样式,包括布局、背景、字体、颜色等。那么一个jsp页面,如何发回一个纯json的应答呢?请看这个例子:
点击后可看到发回的json应答。
可使用www.json.cn网站解析数据,网站会把数据高亮并且缩进显示。
这是怎么做到的呢?
python的做法非常简单,下面是几种实现方法:
from flask import Flask, jsonifyapp = Flask(__name__)@app .route('/data')def get_data(): data = { 'name': 'John Doe', 'age': 30, 'city': 'New York' } return jsonify(data)
jsonify函数会把http的content-type值设置为application/json
或者直接返回这个字典:
@app .route('/data_dict')def get_data_dict(): return { 'name': 'Jane Smith', 'age': 25, 'city': 'London' }
然后是使用dumps函数
from flask import Responseimport json@app .route('/data_raw')def get_data_raw(): data = { 'name': 'Bob Johnson', 'age': 40, 'city': 'Paris' } return Response( json.dumps(data), mimetype='application/json' )