2016-03-22 16 views
2

Probleme beim Parsen eines Arrays von JSON-Objekten mit JavaScript. Meine PHP-Datei bekommt Datenbank Informationen wie folgt aus:Array von JSON-Objekten mit JavaScript analysieren

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [name] => holly 
      [text] => Text 1 
     ) 
    [1] => Array 
     (
      [id] => 2 
      [name] => Becky 
      [text] => Text 2 
     ) 
) 

, die ich dann durch json_encode laufen (dies zu erhalten:

"[\r\n {\r\n  \"id\":\"1\",\r\n  \"name\":\"holly\",\r\n   
\"text\":\"Text 1\"\r\n },\r\n {\r\n  \"id\":\"2\",\r\n  
\"name\":\"Becky\",\r\n  \"tet\":\"Text 2\"\r\n }\r\n]" 

Diese Daten werden über eine JavaScript-Funktion von hier genannt: http://oscargodson.com/posts/unmasking-jsonp.html

Der Callback gibt nichts zurück, was ich analysieren kann, ich bekomme nur [Object Object], wenn ich console.log (json) mache.Ich erhalte Ergebnisse von PHP, weil die Sources-Registerkarte in Chrom Der Webentwickler von e zeigt die PHP-Datei und den angegebenen Text. Ich kann einfach nicht herausfinden, wie man es zum Parsen an JavaScript schickt.

Ich habe Tonnen von 'doppelten' Fragen gelesen und viele sagen, benutze JSON.stringify(), aber ich bekomme keine Ergebnisse.

Ist der Fehler mit meinem PHP oder ich verwende JavaScript einfach nicht richtig? Bitte helfen Sie.

+0

Sie Quelldaten ist JSON, warum Sie JSON zu JSON kodieren? Wenn Sie 'Content-type: application/json' setzen, wenn ich nicht falsch liege, und geben Sie ajax function jQuery json ein. Sie können data.your_data in der Callback-Funktion erste Parameter – Naumov

+0

bekommen sorry, bearbeitet den Beitrag mit der richtigen PHP print_r() – JsusSalv

+0

auch, keine jQuery. Verwenden Sie nur JavaScript – JsusSalv

Antwort

0

Die JSONP() - Funktion aus dem Artikel funktioniert nicht mit Daten aus der Datenbank, aber wenn die gleichen Daten fest codiert sind. Seltsam.

var result = [ 
    {"id":"1","name":"holly","text":"Text 1"},  
    {"id":"2","name":"Becky","text":"Text 2"} 
]; 

for (var i = 0; i < result.length; i++) { 

} 

seltsam. Ich bin mir nicht sicher, warum diese Funktion nicht wie erwartet zurückkehrt, aber ich denke, das ist der Grund, warum jQuery $ .getJSON() hat, so dass wir nicht jedes Mal alles durchgehen müssen.

-1
$.ajax(
{ 
    url: "callback/yourcallback.php", //at the end echo json_encode($array); 
    dataType: "jsonp", 
    data: { paramname: paramvalue}, 
    type: "POST" 
}) 
.done(function(data) 
{ 
    var response=$.parseJSON(data); 
     console.log(response); 
}); 
0

Sie möchten, dass Ihre Daten durch Ebene

json_encode($data) 

Aber bitte Vorsicht alle anderen Argumente dieser Aufruf übergeben laufen - weil in der Zeichenfolge, die Sie (das Ergebnis der JSON-Codierungsfunktion) geschrieben - Sie hatten es hübsch gedruckt. Das ist wahrscheinlich der Hauptgrund, warum Ihre JSONP-Aufrufe zu solchen Ressourcen fehlschlagen - die Daten werden hübsch gedruckt - wenn es nicht sein sollte.