用java解析聚集输出的MongoDB(parsing aggregation output mon

2019-10-19 02:52发布

{
    "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"
                    }
                }
            }
        }
    }]
}

我有这样的结果,我怎样才能得到名称的字符串值。 在这种情况下ANTVERPIA 56.我曾尝试与此下面的代码,但它不工作,请帮助。

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

Answer 1:

您无法使用访问嵌套对象“” 在Java驱动程序。 你必须让DBOBJECT每个嵌套的JSON对象。 下面的代码应该解决的问题。

            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");
            }


文章来源: parsing aggregation output mongodb using java