当前位置: 首页 > 知识库问答 >
问题:

烧瓶/Pymongo JSON响应Java

太叔鸿
2023-03-14

我正在检索mongo集合中与子字符串查询匹配的所有文档:

cursor = db.users.find({"username": {'$regex': username}})

然后将所有匹配的文档作为JSONArray返回给java客户端:

jsonArray = [json.dumps(doc, default=json_util.default) for doc in cursor]
return json.dumps(jsonArray)

当我想在java端解析JSONArray时,我必须执行以下操作:

JSONArray json = new JSONArray(jsonString);
for (int i = 0; i < json.length(); i++) {
    String s = json.getString(i);
    JSONObject row = new JSONObject(s);
    .....

我很有信心我在这里做错了什么。我不必先将JSONArray元素转换为字符串,然后再转换为JSONObject。我是否可以直接从JSONArray中检索JSONObject,而不用先将其转换为字符串?

共有2个答案

柴兴修
2023-03-14

你是说JSONArray吗。getJSONObject(int索引)

JSONArray json = new JSONArray(jsonString);
for (int i = 0; i < json.length(); i++) {
    JSONObject row = json.getJSONObject(i);
    .....
宇文念
2023-03-14

返回的是字符串的JSON数组,而不是对象的JSON数组

getJSONObject不会解析字符串以返回对象。

您必须从Flask代码中返回对象列表:

return json.dumps(list(cursor), default=json_util.default)

之后,使用Menno代码。

 类似资料:
  • 我已经用flask在python上制作了一个restapi(端口:5000),我正在从一个网站(端口:80)发出get和post请求。我收到了cors错误,所以我尝试在RESTAPI中为站点创建一个响应头。但是我得到了导入错误: 我已经下载了烧瓶cors模块并升级它,并确保它是在正确的路径,但它仍然不工作。 API代码:

  • 问题内容: Flask中是否可以将响应发送给客户端,然后继续进行某些处理?我要完成一些簿记任务,但是我不想让客户等待。 请注意,这些实际上是我想做的非常快的事情,因此在这里实际上不适合创建新线程或使用队列。(这些快速的操作之一实际上是在作业队列中添加一些内容。) 问题答案: 可悲的是,将响应返回给客户端后,拆卸回调不执行: 卷曲时,您会注意到在显示响应之前有2s的延迟,而不是卷曲立即结束,然后在2

  • 问题内容: 例如,此URL: 应该返回一个MIME类型的响应。我有两个静态图像, 如果type为1,则应返回,否则返回。在烧瓶中怎么做? 问题答案: 您使用类似 发送回或,具体取决于类型查询参数。有关更多信息,请参见函数和对象的文档。

  • 这是我的代码: 但是,当我从浏览器向服务器发出请求时,会出现以下错误: 我也尝试过这种方法,在请求之后设置响应头: 没有骰子。我得到同样的错误。有没有办法只在路由函数中设置响应头?像这样的东西是理想的: 但是我无论如何也找不到这样做。请帮忙。 编辑 如果我卷曲的url与POST请求这样: 我得到的答复是: 有什么想法吗?

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6

  • 我在嘲笑一个Post api(用C#编写),它在调用时返回一个布尔值true或false。请求的内容类型是application/json 我现在正试图使用Flask在Python中模拟那个endpoint,但我很难让它传递一个布尔值。