当前位置: 首页 > 面试题库 >

如何使用Bottle返回JSON数组?

戴正阳
2023-03-14
问题内容

我正在使用Bottle编写一个API
,到目前为止,一切都很棒。但是,在尝试返回JSON数组时遇到了一个小障碍。这是我的测试应用程序代码:

from bottle import route, run

@route('/single')
def returnsingle():
    return { "id": 1, "name": "Test Item 1" }

@route('/containsarray')
def returncontainsarray():
    return { "items": [{ "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" }] }

@route('/array')
def returnarray():
    return [{ "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" }]

run(host='localhost', port=8080, debug=True, reloader=True)

当我运行它并请求每条路线时,我会从前两条路线得到我期望的JSON响应:

/单

{ id: 1, name: "Test Item 1" }

/ containsarray

{ "items": [ { "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" } ] }

因此,我曾期望返回一个字典列表来创建以下JSON响应:

[ { "id": 1, "name": "Test Object 1" }, { "id": 2, "name": "Test Object 2" } ]

但是,请求/array路线只会导致错误。我在做什么错,如何以这种方式返回JSON数组?


问题答案:

Bottle的JSON插件只希望返回字典,而不返回数组。返回JSON数组存在一些漏洞-
例如,请参阅有关JSON劫持的这篇文章。

如果您确实需要这样做,可以这样做,例如

@route('/array')
def returnarray():
    from bottle import response
    from json import dumps
    rv = [{ "id": 1, "name": "Test Item 1" }, { "id": 2, "name": "Test Item 2" }]
    response.content_type = 'application/json'
    return dumps(rv)


 类似资料:
  • 问题内容: 我不知道如何用代码返回JSON数据。 JS C#的Default.aspx.cs 提前致谢! 问题答案: 你不远 您需要执行以下操作: 您可以进一步减少此代码,但为清晰起见,我将其保留下来。实际上,您甚至可以这样写: 这将返回一个json字符串。我宁愿更加明确,因为我使用自定义转换器。也有Json.net,但是框架的工作开箱即可。

  • 问题内容: Spring 4.2.0,Hibernate 4.1.4, 这是我的功能: 中的Jackson JSON映射器依赖项: 在我的中获取列表,但返回时显示以下错误: 链接到我正在关注的示例。 问题答案: 将以下依赖项添加到pom.xml中:

  • 和服务: 例外情况 和异常控制器 如何才能在相同的方法中返回Zip文件或json消息?问题是,produces=“application/zip”,如果不这样做,就会收到正确的错误json,但它不会下载文件,否则反之亦然,谢谢

  • 问题内容: 我想知道如何对方法返回List的JSON数组,例如: 我想知道如何在我的方法中接收List参数类型 我已经阅读了有关JaxbContext的文章,我了解它如何为我提供帮助。 问题答案: 使用JAXB时,支持两种类型。第一个是元素列表,第二个是元素定界字符串(“常规” XML值或属性,使用某些定界符将其解析为列表)。第一个似乎是您想要的(“数组”)。 有关参考,请参见:http : //

  • 问题内容: 我正在构建RESTful API,并希望为开发人员提供选择以在JSON响应中返回哪些字段的选项。 这篇博客文章显示了几个API(Google,Facebook,LinkedIn)如何允许开发人员自定义响应的示例。这称为部分响应。 一个示例可能看起来像这样: 在上面的示例中,API应该返回用户“ 123”的userId,fullName和title字段。 我正在寻找有关如何在我的REST

  • 问题内容: 我在使用flask.jsonify函数从字典输入中输出格式化的json响应时遇到了一些麻烦,如此处所述。 我的代码似乎正在返回Response对象,而不是我想要的格式化json对象。 我有 其中dict是从调用函数返回的字典对象。 在我的模板中,我有: 显示如下: 我该如何返回我要寻找的json表示形式? 问题答案: 你可以像这样使用json.dumps: 然后将其格式化为模板,如下所