Ich verwende die Google Geokodierungs-API, um eine JSON-Zeichenfolge mit geokodierten Standortinformationen abzurufen. Hier ist die Zeichenfolge, die ich von Google erhalten habe.Abrufen einer java.lang.ClassCastException bei Verwendung von "net.sf.json.JSONObject" mit Google-Geokodierung
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "550 Susong Dr, Morristown, TN 37814, USA",
"address_components": [ {
"long_name": "550",
"short_name": "550",
"types": [ "street_number" ]
}, {
"long_name": "Susong Dr",
"short_name": "Susong Dr",
"types": [ "route" ]
}, {
"long_name": "Morristown",
"short_name": "Morristown",
"types": [ "locality", "political" ]
}, {
"long_name": "Morristown",
"short_name": "Morristown",
"types": [ "administrative_area_level_3", "political" ]
}, {
"long_name": "Hamblen",
"short_name": "Hamblen",
"types": [ "administrative_area_level_2", "political" ]
}, {
"long_name": "Tennessee",
"short_name": "TN",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States",
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "37814",
"short_name": "37814",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 36.2422740,
"lng": -83.3219410
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 36.2391264,
"lng": -83.3250886
},
"northeast": {
"lat": 36.2454216,
"lng": -83.3187934
}
}
}
}] }
Allerdings, wenn ich den folgenden Code in Java erhalte ich eine "java.lang.ClassCastException: java.lang.String unvereinbar mit net.sf.json.JSONObject" Error.
Ich bin mir nicht sicher, warum ich den Fehler bekomme. Die Google-Antwort sieht für mich wie eine gültige JSON-Zeichenfolge aus. Hat sonst noch jemand Probleme damit? Ich bin offen für etwas außer der net.sf.json, wenn es aus irgendeinem Grund nicht gut mit Google spielt.
Danke,
Andrew
Gibt 'query (json," Placemark [0] ")' eine 'Zeichenfolge' zurück? – Nishant
Wenn ich "System.out.println (Abfrage (json," Placemark [0] "). GetClass());" vor der letzten Zeile sagt es, dass es eine java.lang.String zurückgibt. –
) so jetzt wissen Sie, was zu tun ist. Gib entweder JSONObject von query() zurück oder entferne das Casting und die Zuweisung. – Nishant