Dies ist das Beispiel JSON array
vom Server.Android: JSONArray kann nicht in JSONObject konvertiert werden
[
{
"users":{
"uid":"5893048cc3a841.21437792",
"name":"Jakob Nolan",
"email":"[email protected]"
}
},
{
"users":{
"uid":"589308eb640e79.86708812",
"name":"Donald Trump",
"email":"[email protected]"
}
}
]
Ich versuche JSONArray
und JSONObject
zu verwenden, innerhalb der Werte zu erhalten. Also habe ich einen Code wie folgt geschrieben.
String strResponse = response.body().string();
Log.i("Superman", strResponse);
try {
JSONObject jsonObject = new JSONObject(strResponse);
boolean error = jsonObject.getBoolean("error");
Log.i(TAG, ""+error);
if(!error) {
JSONArray people = jsonObject.getJSONArray("users");
JSONObject obj = people.getJSONObject(0);
final String name = obj.getString("name");
Log.i("TAG", name);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "it works! ", Toast.LENGTH_SHORT).show();
}
});
} else {
final String strError = jsonObject.getString("error_msg");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), strError, Toast.LENGTH_SHORT).show();
}
});
hideDialog();
}
} catch (final JSONException e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i(TAG, "JSONException caught: " + e.getMessage());
}
});
lief ich den Code oben, und ich bekam die JSONException
wie folgt.
02-03 17:22:14.091 27684-27684/com.marshall.authentication I/MainActivity: JSONException caught: Value [{"users":{"uid":"5893048cc3a841.21437792","name":"Jakob Nolan","email":"[email protected]"}},{"users":{"uid":"589308eb640e79.86708812","name":"Donald Trump","email":"[email protected]"}}] of type org.json.JSONArray cannot be converted to JSONObject
Habe ich bei der Analyse der JSON-Objekte aus dem JSON-Array etwas falsch gemacht?
Irgendwelche Vorschläge für die Lösung? –
Wenn Sie den JSON nicht ändern können, denke ich, dass Sie mit der Antwort von d1vivek681065 das erreichen können, was Sie wollen. Aber die JSON, die Sie empfangen, obwohl Syntax gültig, sieht nicht wie ein normales Array von Benutzern aus. –
@ MarshallS.Lee siehe meine Antwort –