Ich weiß, dass es hier mehrere Fragen mit dem gleichen Thema und Fehler gibt, aber keine von ihnen zeigen das gleiche Problem wie meine, so dass ich beschlossen, meine Frage hier zu posten, in der Hoffnung, dass jemand würde Hilf mir, auf die Ursache hinzuweisen. So versucht ich die Login-Funktion in meiner App zu implementieren und hier ist der Code:Android - JSONException Kein Wert für
if (tag.equalsIgnoreCase(login_tag)){
// check for login response
try {
if (json.getString(KEY_SUCCESS) != null) {
String res = json.getString(KEY_SUCCESS);
if(Integer.parseInt(res) == 1){
// user successfully logged in
// Store user details in SQLite Database
DatabaseHandler db = new DatabaseHandler(mContext);
JSONObject json_user = json.getJSONObject("user");
// Clear all previous data in database
logoutUser(mContext);
Toast.makeText(mContext, json.toString(3), Toast.LENGTH_LONG).show();
db.addUser(json_user.getString(KEY_EMAIL), json_user.getString(KEY_NAME), json.getString(KEY_UID), json.getString(KEY_AVA), json_user.getString(KEY_BDAY), json_user.getString(KEY_COUNTRY), json_user.getString(KEY_PREF), json_user.getString(KEY_SPEND));
// Launch Dashboard Screen
Intent dashboard = new Intent(mContext, DashboardActivity.class);
// Close all views before launching Dashboard
dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(dashboard);
// Close Login Screen
((Activity) mContext).finish();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
Und das ist die JSON-Antwort bekam ich bei der Anmeldung:
{
"tag": "login",
"success": 1,
"error": 0,
"uid": "5123",
"user": {
"email": "[email protected]",
"name": "abc",
"avatar": "avatars/img_hzsxda_2013-03-18-11-03-33.jpg",
"bday": "1991-02-01",
"country": "Australia",
"preferences": "none",
"spending": "none"
}
}
So anscheinend gibt es ein Wert für avatar
, aber ich habe noch diese Warnung in meinem logcat bekam:
03-18 12:06:36.972: W/System.err(24574): org.json.JSONException: No value for avatar
Da kein Wert avatar bekam ist, kann ich addUser
nicht abgeschlossen, daher logi n schlägt fehl. Bitte helfen Sie mir den Fehler zu finden und wie man es löst. Vielen Dank.
Wie sehen Sie Ihre KEY_AVA? – Sajmon
So habe ich es deklariert: 'private static String KEY_AVA =" avatar ";' –
Darf ich Ihnen raten, Ihre reale E-Mail nicht in einem Beispiel zu verwenden. Sie wissen nie, wer sonst noch auf dieser Website schaut (Hacker/Verkäufer etc.) – Bigflow