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, jsonify
app = 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 Response
import 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'
    )