使用java解析聚合输出mongodb

时间:2013-12-06 11:04:30

标签: mongodb parsing

{
    "serverUsed" : "localhost/127.0.0.1:27017", 
    "result" : [{
         "_id" : {
            "$oid" : "529f131430044109e30fc6f9"
            }, 
        "html" : { 
            "table" : { 
                "tbody" : { 
                    "Barge" : { 
                        "Name" : "ANTVERPIA 56", 
                        "Bargeno" : 6003696, 
                        "Harbour" : "HH",
                        "Reportedpresent" : " ", 
                        "Starting" : "06-12-2013  spil 2"
                    }
                }
            }
        }
    }]
}

我有这个结果,我怎么能得到Name的字符串值。在这种情况下ANTVERPIA 56。 我已尝试使用以下代码,但它不起作用,请帮忙。

for (DBObject result1: output.results()){
    String name1 =  (String)result1.get("html.table.tbody.Barge.Name");
    System.out.println(name1);
}

1 个答案:

答案 0 :(得分:1)

使用“。”无法访问嵌套对象。在Java驱动程序中。您必须为每个嵌套的json对象获取DBObject。以下代码应解决问题。

            for (DBObject result : output.results()) {
                DBObject htmlObj = (DBObject) result.get("html");
                DBObject tableObj = (DBObject) htmlObj.get("table");
                DBObject tbodyObj = (DBObject) tableObj.get("tbody");
                DBObject bargeObj = (DBObject) tbodyObj.get("Barge");

                String name = (String) bargeObj.get("Name");
            }