2016-03-30 9 views
0

Ich ziehe Daten aus einer Mongodb-Datenbank. Ich muss auf bestimmte Elemente in den Daten zugreifen, aber ich habe kein Glück. Ich kann das gesamte Objekt drucken und seine Struktur sehen, aber beim Zugriff auf Objekte innerhalb des JSON-Objekts bekomme ich eine Ausnahme; Ausnahme ausgelöst org.json.JSONException: JSONObject ["forms"] nicht gefunden. Ich war nicht in der Lage, das Problem herauszufinden, jede Hilfe würde sehr geschätzt werden. Hier ist das JSON-Objekt und der Code Ich verwende es zu analysieren:Ich habe Probleme beim Zugriff auf Elemente in einem JSON-Objekt in JAVA

{"_id":{"$oid":"56ec24fce4b0322e5e267fc4"} 
, "dateModified":{"$numberLong":"1458316466081"} 
, "id":"56ec24aae4b0322e5e267e41" 
, "projectLabel":"CLT119-050-002" 
, "projectId":"CLT119-050-002" 
, "clientFile":"DEC_5.3.client" 
, "clientFileVersion":"9ce6fad040358033c98db66c7ea80fe8" 
, "calcLocation":{"label":"19NC59" 
, "mapNumber":"" 
, "comments":"" 
, "address":{"number":"2120" 
, "street":"N DAVIDSON ST" 
, "city":"CHARLOTTE" 
, "county":"MECKLENBURG" 
, "state":"NC" 
, "zip_code":"28206"} 
, "technician":"F PIERCE" 
, "crossStreet1":"" 
, "crossStreet2":"" 
, "geographicCoordinate":{"type":"Point" 
, "coordinates":[-80.81569166666667 
, 35.23912333333333 
, 238.3]} 
, "remedies":[{"description":"TWC: At 20' 6\" lower 0' 6\" to 20' 0\""} 
, {"description":"AT&T: At 21' 1\" lower 1' 1\" to 19' 0\" span NorthWest"} 
, {"description":"GFI: Attach at 18' 0\""}] 
, "poleTags":[] 
, "userDefinedValues":{} 
, "summaryNotes":["At Pole Clearance Violation"] 
, "forms":[ 
, {"title":"Billing Code (Client)" 
, "template":"9ce6fad040358033c98db66c7ea80fe8-Billing Code (Client)" 
, "fields":{"Billing Code":"Remedy Pole" 
, "Data Collection":"Select One" 
, "2nd Trip Fee":"false" 
, "ReEngineered":"false" 
, "2nd ReEngineered":"false" 
, "3rd ReEngineered":"false" 
, "Comments":""}}] 
, "images":[{"url":"19NC59-1.jpg" 
, "link":{"id":"f931f69c-0748-433e-b186-31cc04abd9a1" 
, "source":"filefortAssetService"}} 
, {"url":"19NC59-2.jpg" 
, "link":{"id":"e3517acf-ff79-4ad8-ba33-fac6e75f0c80" 
, "source":"filefortAssetService"}} 
, {"url":"19NC59-3.jpg" 
, "link":{"id":"ecf92caf-c5ff-4d68-b84a-14805186bab9" 
, "source":"filefortAssetService"}}] 
, "designs":[{"id":"56ec24aae4b0322e5e267e3e" 
, "label":"Existing"} 
, {"id":"56ec24aae4b0322e5e267e3f" 
, "label":"Proposed"} 
, {"id":"56ec24aae4b0322e5e267e40" 
, "label":"Remedy"}] 
, "id":"56ec24aae4b0322e5e267e41"} 
, "user":{"id":"0" 
, "email":"[email protected]"}} 

der Code:

FindIterable<Document> iterable = db.getCollection("locations").find(new Document("projectLabel", "CLT119-050-002")); 
    iterable.forEach(new Block<Document>() { 
     @Override 
     public void apply(final Document document) { 
      try{ 
       JSONObject json = new JSONObject(document.toJson()); 
       JSONArray forms = json.getJSONArray("forms");  
      }catch(Exception e){ 
       System.out.println(e); 
      } 
     } 

das Objekt json hat die Daten in es versucht, die JSONArray wirft die Ausnahme zu füllen.

+1

Ihr JSON scheint ungültig zu sein. Sie können es hier überprüfen: http: //jsonlint.com/ – SearchAndResQ

Antwort

0

Die Sache ist, dass das Objekt, auf das Sie zugreifen möchten, ist calcLocation.forms nicht einfach Formen.

+0

Sie haben Recht, ich habe die Verschachtelung komplett vermisst. Danke Mike – Lennie

Verwandte Themen