9 Stimmen

Parsen von PHP/JSON-Daten in Javascript

Ich versuche, AJAX, JSON an PHP zu kommunizieren, und dann gibt PHP einige Daten zurück und ich versuche, sie mit Javascrpt zu parsen.

Vom php, Server komme ich zurück,

    echo json_encode($data); 

    // it outputs ["123","something","and more something"]

und dann auf der Client-Seite,

success : function(data){

    //I want the data as following

    // data[0] = 123
    // data[1] = something
    // data[3] = and more something
}

Aber, es gibt als;

        data[0] = [ 
        data[1] = " 
        data[2] = 1

Es wird jedes Zeichen gelesen, aber ich möchte Zeichenfolgen aus dem Array, nicht einzelne Zeichen. Was ist hier los? Vielen Dank im Voraus, ich bin neu in Javascript und JSON, AJAX.

12voto

JSON.parse(data) sollte das genügen.

4voto

VisioN Punkte 137670

Stellen Sie die dataType Eigenschaft des Ajax-Aufrufs an json . Dann wird jQuery automatisch Ihre Antwort in eine Objektdarstellung umwandeln.

$.ajax({
    url : ...,
    data : ...,
    dataType : "json",
    success : function(json) {
        console.log(json);
    }
});

Eine andere Möglichkeit ist, Header in PHP zu setzen, damit JQuery versteht, dass Sie ein JSON-Objekt senden.

header("Content-Type: application/json");
echo json_encode($data);

1voto

Emmanuel Okeke Punkte 1442

Ich bin mir nicht sicher, ob es das ist, was Sie wollen, aber warum wollen Sie nicht, dass php es in diesem Format zurückgibt:

{'item1':'123','item2':'something','item3':'and more something'}

Um dies zu erreichen, müssen Sie sicherstellen, dass das Array, das Sie json_encode() ist assoziativ. Sie sollte die folgende Form haben

array("item1"=>123,"item2"=>"something","item3"=>"more something");

Sie könnten sogar eine stripslashes() für den Fall, dass einige der Werte im Array URLs sein könnten

Sie könnten dann eine JSON.parse() auf die JSON-Zeichenfolge und den Zugriff auf die Werte

Hoffentlich hilft das!

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