首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDB -如何在Java中使用printjson输出

MongoDB -如何在Java中使用printjson输出
EN

Stack Overflow用户
提问于 2011-04-22 02:44:14
回答 3查看 3.2K关注 0票数 2

我需要通过Java与MongoDB shell通信。

简而言之,我正在使用类似于Runtime.exec (专用于commons)的东西来调用MongoDB外壳在-eval模式下

使用这种方法,我能够成功地调用MongoDB命令,将输出检索到流中(例如,打印到stdout )。

到目前为止一切都很好。

我现在需要将这个输出“解析”成一个类似于 JSONObject的数组。

(我可以使用任何可能适用于此的JSON库,如Jackson等),这样我就可以根据某些需求“按摩”输出。(更改格式,删除一些键值对,等等)

当我查看printjson至少在数组情况下生成的输出时,它似乎不是一个有效的json数组,而是由新行分隔的有效json对象,没有中间的逗号或包围的[],这将使它成为一个有效的数组。

在这种情况下,对于如何将输出解析为某种类型的holder对象,我可以用来读取/修改键值对,有什么建议吗?

编译时我没有json命令,但我知道这些命令总是以printjson结尾

编辑-

因此,为了简化,例如,我正在寻找一种将以下输出解析为Java对象的方法-

(编译时不知道单个键/值对)

代码语言:javascript
运行
复制
{
    "_id" : ObjectId("4db0e0289523f82ff6cd90d4"),
    "calendar_date" : "2009-11-10",
    "product_id" : 8,
    "channel" : "website",
    "country" : "USA",
    "total_unit_count" : 740,
    "total_amount" : 11367.29
}
{
    "_id" : ObjectId("4db0e0289523f82ff6cd90d5"),
    "calendar_date" : "2009-11-10",
    "product_id" : 8,
    "channel" : "website",
    "country" : "Australia",
    "total_unit_count" : 740,
    "total_amount" : 13893.09
}
{
    "_id" : ObjectId("4db0e0289523f82ff6cd90d6"),
    "calendar_date" : "2009-11-10",
    "product_id" : 8,
    "channel" : "retail",
    "country" : "USA",
    "total_unit_count" : 13,
    "total_amount" : 8296.89
}
EN

Stack Overflow用户

发布于 2011-08-27 19:14:04

com.mongodb.util.JSON似乎没有扩展DBObject,我不知道为什么人们声称您可以做collection.insert(一些json)。还有其他方法插入我丢失的json吗?

编辑:答案在这里很简单,但不在文档中。只需添加一个演员:

代码语言:javascript
运行
复制
collection.insert((DBObject)JSON.parse(some json ... ));
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5751810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档