Ist das ein korrektes JSON-Format {"coord": {"lat": 37.4056, "lon": - 122.0775}} [doppelt] - java, json

Ich verstehe, dass das korrekte JSON-Format wie folgt aussehen würde:

{"coord":[{"lat":37.4056,"lon":-122.0775}]}

Aber ich habe Daten in diesem Format

{"coord":{"lat":37.4056,"lon":-122.0775}}

Wenn dies ein korrektes JSON-Format ist, wie wird es in Java analysiert?

Antworten:

1 für die Antwort № 1

Im Json das {} eckige Klammern geben ein Objekt an, während der [] Eine zeigt ein Array an.

Ihr erstes Beispiel enthält ein Array mit einem Objekt mit lat und lon Eigenschaften, auf die das Objekt zugegriffen wird data.coord[0].lat.
Ihr zweites Beispiel ist ein Objekt, das ein Objekt mit enthält lat und lon Eigenschaften.
Das heißt, kein Array, nur ein Objekt. Auf das Objekt wird von zugegriffen data.coord.lat.

Beide sind richtig json.

Sie werden sie auf die gleiche Weise analysieren, sie werden nur unterschiedliche Typen sein (das Objekt oder Array unter coord).

// Parse:
JSONObject obj = new JSONObject(jsondatastring);
// Fetching the object:
JSONObject coord = obj.getJSONObject("coord");
// Or fetching the array:
JSONArray coords = obj.getJSONArray("coord");

Verwandte Fragen
Speisekarte