【问题标题】:Getting keys and values from a list on a JSON String using BasicDBObject使用 BasicDBObject 从 JSON 字符串的列表中获取键和值
【发布时间】:2018-04-20 20:19:18
【问题描述】:

我有一个String,其中包含一个包含列表的 JSON。它是这样的:

{
    "counts":[
        {"foo827138": 123124, "bar2918":312312, "something_else321-313":2321321},
        {"foo1231412": 4321, "bar1231515":123, "something_else3012931":7282},
        {"foo1210820": 1234, "bar10293810":3112, "something_else12094":1321}
    ]
}

BasicDBObject.parse()解析后:

DBObject doc = BasicDBObject.parse(jsonString);  

如何获取counts 列表中的键和值?

PS.:doc.get("counts") 返回一个 BasicDBList 对象。我只能通过以下方式对其进行迭代:

for (Object a : doc) {
    // Something
}

Object 不提供get() 方法或类似的方法。所以我不知道如何获取我的任何键名和各自的值。

【问题讨论】:

  • 当您引用BasicDBObject 时,您是在谈论它的MongoDB 实例吗?你能提供你调用 parse() 的代码吗?
  • 是的,它是它的一个 MongoDB 实例。我已经编辑了提供确切场景的问题。

标签: java json mongodb list


【解决方案1】:
Document document = Document.parse(jsonString);
List<Document> countsArray = document.get("counts",List.class);
for (Document doc : countsArray){
    doc.keySet(); //keys
    doc.values(); //values
    for (Map.Entry entry : doc.entrySet()){
        // iterate over each pair
    }
}

【讨论】:

    【解决方案2】:

    你试过 yourObject.get("keyname")

    【讨论】:

    • 密钥是随机的
    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多