2013-12-06 5 views
1
{ 
    "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. Я пробовал использовать этот следующий код, но он не работает, пожалуйста, помогите.анализ агрегирования продукции mongodb с использованием java

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

ответ

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

Спасибо, парвин, ты действительно помог мне. Вы решили мою проблему. – Muratcan

+0

Добро пожаловать. Пожалуйста, примите его как ответ, если он решает проблему. –

Смежные вопросы