Ich habe den folgenden JSON in einer Variablen namens data zurückgegeben.
DAS IST DER JSON, DER ZURÜCKGEGEBEN WIRD ...
[
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "jjjjjjj"}
]
und ich versuche, die Sammlung mit $ .each zu durchlaufen, aber ich stoße auf Probleme, bei denen die Warnung undefiniert angezeigt wird. Ich habe viele verschiedene Syntaxen ausprobiert, kann dies aber nicht herausfinden.
Die JQuery, die ich verwende, ist
$.each(data, function(i, item) {
alert(item.PageName);
});
Kann mich jemand in die richtige Richtung weisen?
BEARBEITEN Dies ist der Code, mit dem ich die Daten abrufe
$.getJSON('/Cms/GetPages/123', null, function(data) {
fillSelect(data);
});
und dies ist die Funktion, die beim Rückruf aufgerufen wird
function fillSelect(data) {
alert(data);
$.each(data, function(i, item) {
alert(item.PageName);
});
}
EDIT 2 Das ist etwas verwirrend für mich, laut den Dokumenten sollte es so funktionieren, wie ich es habe, aber es funktioniert nicht. Laut Fiddler zeigt der Header: -
Content-Type: application/json; charset=utf-8
und der JSON ist oben genau richtig. Ich benutze Chrom, wenn dies etwas anderes macht. Wird in IE und FF testen ....
BEARBEITEN 3
mit $ .get erzeugt
"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10056,\r\n \"PageName\": \"fdgdfgdfg\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10052,\r\n \"PageName\": \"hjkhjk\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10059,\r\n \"PageName\": \"jjjjjjj\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10057,\r\n \"PageName\": \"qqqqq\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10054,\r\n \"PageName\": \"qwqw\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n }\r\n]"