2009-05-18 4 views
1

Ich habe den folgenden Code auf meiner Seite. Ich erwarte, dass eine Reihe von JSON-Objekten von der Seite person_output.aspx zurückgegeben wird, was erfolgreich ausgeführt wird. Wenn es jedoch um die Ausgabe des Inhalts geht, erhalte ich einen Fehler.kann nicht jquery Ausgabe mein JSON-Objekt

$.getJSON("ajax/person_output.aspx", { 'uID': 1 }, function(data) { 
      $.each(data.items, function(i, item) { 
      $("<span/>").html(item.first_name).appendTo("#content"); 
       }); 
      }); 

ajax/person_output.aspx erzeugt die folgende json (dies ist nur für einen Datensatz ..)

{ 
    "l_id": "49", 
    "u_id": "1", 
    "first_name": "john", 
    "last_name": "doe", 
    "title" : "General Manager", 
    "color" : "333" 
} 

firebug erzeugt den folgenden Fehler;

G is undefined 
init()()jquery-1....2.min.js (line 12) 
(?)()()URLINX5 (line 99) 
I()jquery-1....2.min.js (line 19) 
F()()jquery-1....2.min.js (line 19) 
[Break on this error] (function(){var l=this,g,y=l.jQuery,p=l.....each(function(){o.dequeue(this,E)})}}); 
+0

Der Fehler scheint mit der Variable G zu sein. Ist das irgendwo definiert? – aleemb

+0

Die Variable "G" ist ein Ergebnis der Komprimierung von jquery. Sie sollten versuchen, es mit einer Entwicklungsversion von jQuery auszuführen und sehen, ob die Ausgabe in diesem Fall mehr Sinn macht. – fforw

Antwort

2

Es gibt ein Komma nach der Farbeigenschaft in Ihrem JSON-Ergebnis, entfernt es Hilfe?

+0

Guter Fang. Ich wollte dasselbe sagen. +1 – ichiban

+0

Nein, eigentlich gab es mehr Zeilen, die ich nicht eingefügt habe, um Dinge einfach zu halten. Im Original gibt es kein Komma nach der letzten Zeile. Ich bearbeite die Frage jetzt. –

+0

Sie sagen "dies ist nur für einen Datensatz", .. Sie zurückgeben ein Array dieser Objekte in [{square: "Klammern"}] gewickelt? –

0

Ich bin neu in Firebug, aber Sie müssen herausfinden, was hier

undefiniert ist

$.getJSON("ajax/person_output.aspx", { 'uID': 1 }, function(data) { 
      $.each(data.items, function(i, item) { 
      $("").html(item.first_name).appendTo("#content"); 
       }); 
      }); 

Es ist entweder Daten, data.items, Elemente oder item.first_name. Wenn Sie ein Array zurückgeben, müssen Sie etwas wie data.items [i] statt item.first_name tun? So wie Sie es eingerichtet haben, ist "Element" wahrscheinlich 0,1,2,3 ... n