3 Stimmen

Fehler beim Umwandeln von String in JSON

Need help on android. Been having this error Error beim Parsen von Daten org.json.JSONException: Wert des Typs java.lang.String kann nicht in JSONObject konvertiert werden

Unten ist die Seite, die mir den Fehler gibt, wenn ich sie ausführe.

public class Login extends Activity {

//URL um Benutzerdaten abzurufen
private static String URL_GET = "http://10.0.2.2/android_connect/get_authentication.php";

// JSON-Knotennamen
private static final String TAG_SUCCESS = "success";
private static final String TAG_USERS = "Users";
private static final String TAG_EMAIL = "Email";
private static final String TAG_PASSWORD = "Password";

JSON-Parser jParser = new JSONParser();
String dbPassword = null;
// Benutzer-JSONArray
JSONArray Users = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Standardbildschirm auf login.xml setzen
    setContentView(R.layout.login);

    Button btn = (Button) findViewById(R.id.btnLogin);

    // Auf das Registrieren eines neuen Kontos hören
    btn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            String password =  ((EditText) findViewById(R.id.password)).getText().toString();
            new getAuthentication().execute();

            if (password.equals(dbPassword)) {
                // Wechseln zum Hauptbildschirm
                Intent i = new Intent(getApplicationContext(), EchoSphere.class);
                startActivity(i);
            }
        }
    });
}
class getAuthentication extends AsyncTask{

    @Override
    protected String doInBackground(String... params) {

        runOnUiThread(new Runnable() {
            public void run() {
                // Überprüfen auf Erfolgsmarkierung
                int success;

                try {
                    String email = ((EditText) findViewById(R.id.email)).getText().toString();

                    Log.d("email:", email);

                    List params = new ArrayList();
                    params.add(new BasicNameValuePair(TAG_EMAIL, email));

                    JSONObject json = jParser.makeHttpRequest(URL_GET, "GET", params);
                    Log.d("Password:", json.toString());

                     success = json.getInt(TAG_SUCCESS);       

                    if (success == 1) {
                        Users = json.getJSONArray(TAG_USERS);
                        JSONObject c = Users.getJSONObject(0);
                        dbPassword = c.getString(TAG_PASSWORD);
                        Log.d("DBPW:", dbPassword);
                    }

                    } catch (JSONException e) {
                    e.printStackTrace();
                    }

                    }

                });
        return null;
    }

}
}

Dies ist das PHP-Skript, ich habe das PHP validiert und es scheint zu funktionieren.

 0) {

        $result = mysql_fetch_array($result);

        $user[] = array();
        $user["Email"] = $result["Email"];
        $user["Password"] = $result["Password"];

        // Benutzerknoten
        $response["Users"] = array();

        array_push($response["Users"], $user);

        // Erfolg
        $response["success"] = 1;

        // JSON-Antwort ausgeben
        echo json_encode($response);
    } else {
        // Kein Produkt gefunden
        $response["success"] = 0;
        $response["message"] = "Kein Benutzer gefunden";

        // Keine Benutzer-JSON-Antwort ausgeben
        echo json_encode($response);
    }
} else {
    // Kein Produkt gefunden
    $response["success"] = 0;
    $response["message"] = "Kein Benutzer gefunden";

    // Keine Benutzer-JSON-Antwort ausgeben
    echo json_encode($response);
}
} else {

// Erforderliches Feld fehlt

$response["success"] = 0;
$response["message"] = "Erforderliche Felder fehlen";

// JSON-Antwort ausgeben
echo json_encode($response);
}
?>

Die Ergebnisse sind wie folgt

{"Users":[{"0":[],"Email":"1","Password":"123"}],"success":1}

Ich weiß nicht, wo der Fehler liegt.

0voto

Patrick Goh Punkte 45

Ich habe den Fehler gelöst.

Vielen Dank an alle, die geholfen haben.

Ich habe hinzugefügt

header('Content-type: application/json');

zum PHP-Skript und die Anwendung läuft jetzt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X