如何在Bottle中处理JSON请求?
我需要从客户端通过Ajax传输的JSON中获取数据。基本上,我用的是这样的代码:
@route('/ajax')
def serve_ajax():
return main.parse_request(json.dumps(dict(request.GET)))
这里的main.parse_request是一个函数,里面有一些处理JSON变量的逻辑(这是我们游戏引擎的主要程序)。
问题是,我无法正确处理JSON变量,因为在把request.GET
转换成字典时,无法传递嵌套的对象和数组。而且每个值都是字符串类型,但我需要整数的地方是整数类型,其他地方是字符串类型。
或者,因为我可以获取原始的查询字符串(通过request.query_string
),那么我该如何把查询字符串转换成原始的JSON对象呢?
2 个回答
21
request.json 的大小是受到 MEMFILE_MAX 的限制的。
如果请求的数据超过了 MEMFILE_MAX 的限制,还有其他方法可以处理。
json.load(request.body)
28
从瓶子(Bottle)版本0.10开始,request.json
功能可以直接使用啦 :)
详细说明可以在这里找到。