2016-07-19 11 views
1

Ich verwende json_encode, um ein assoziatives Array in JSON-Format zu konvertieren. Aber wenn ich versuche, die Eigenschaft von data zu drucken, auf die über Ajax von dieser PHP-Datei zugegriffen wird, zeigt es undefined. Wenn ich den Datentyp überprüft habe, gibt es String zurück.Warum gibt dieser json_encode String statt Objekt zurück?

$elem1= "<div class='menuitems'> 
         <div class='menu1'>".$row['name']."<span class='srno'>".$row['srno']."</span></div> 
         <div class='menu2'>".$row['email']."</div> 
         <div class='menu3'>".$row['password']."<span class='cross'>X</span></div> 
         <div class='clear'></div> 
        </div>"; 
$elem2=$row['category']; 
$array=array(
     "elem1"=>"$elem1", 
     "elem2"=>"$elem2" 
    ); 
echo json_encode($array); 

Warum ist es so? Wie kann ich über diese Zeichenfolge auf die elem1 und elem2 zugreifen?

+0

JSON ist ein Zeichenfolgenformat ... – Sirko

+0

Rufen Sie 'json_decode()' auf, um es zu decodieren. – Barmar

+1

Der ganze Sinn von JSON besteht darin, Arrays und Objekte in Strings umzuwandeln, damit Sie sie über das Netzwerk senden oder in einer Datei speichern können. – Barmar

Antwort

0

Immer HTTP-Antworten werden von Zeichenfolge Datentyp. Sie müssen den JSON analysieren, bevor Sie ihn verwenden können. Es gibt zwei Möglichkeiten. Sie müssen verwenden:

$.getJSON(url, function (data) { 
    typeof data; // object 
}); 

Im Gegensatz zu:

$.get(url, function (data) { 
    typeof data; // string 
}); 

Wenn Sie die oben eines verwenden, müssen Sie verwenden:

$.get(url, function (data) { 
    typeof data; // string 
    data = JSON.parse(data); 
    typeof data; // object 
}); 

Hinweis: I verwende AJAX von jQuery. Die Konvertierung, die sehr spezifisch ist, ist in reinem JavaScript.

+0

Sie haben $ .get verwendet. Ist es auch für $ .ajax gültig? Was ist der Unterschied zwischen $ .get und $ .ajax? –

+0

@VikasKumar Ja! '$ .get' ist eine Abkürzung für' $ .ajax' mit URL. –

+0

Ok, Sie müssen nicht definieren "Typ" usw.? –

Verwandte Themen