Ich erhalte einen Parse-Fehler, wenn Sie jQuery verwenden, um einige JSON-Daten zu laden. Hier ist ein Ausschnitt aus meinem Code:
jQuery.ajax({
dataType: "json",
success: function (json)
{
jQuery.each(json, function ()
{
alert(this["columnName"]);
});
}
});
Ich erhalte keine Fehler beim Parsen eines nicht leeren JSON-Objekts. Also meine Vermutung ist, dass das Problem mit meinem Serialisierer ist.
Die Frage ist: Wie formatiere ich ein leeres JSON-Objekt, das jQuery nicht als missgebildet betrachtet?
Das habe ich bis jetzt versucht, ohne Erfolg:
{[]}
{[null]}
{}
{null}
{"rows": []}
{"rows": null}
{"rows": {}}
UPDATE:
Ich kann verstehen, dass ich mich etwas vage ausgedrückt habe - lassen Sie mich versuchen, das zu klären:
Parsing des JSON-Objekts ist nicht das Problem hier - JQuery ist - ich denke.
jQuery löst einen Parse-Fehler aus (ruft die Fehlerfunktion auf). Es scheint, dass die interne JSON-Validierung von jQuery keines der zuvor genannten Objekte akzeptiert. Nicht einmal die gültigen Objekte.
Die Ausgabe der Fehlerfunktion ist:
XMLHttpRequest:
XMLHttpRequest readyState=4 status=200
textStatus:
Parser-Fehler
errorThrown:
undefiniert
Dies gilt für alle vorgenannten Objekte.
0 Stimmen
Das ist das Problem mit Teilmengen, sie haben nicht alles.
0 Stimmen
Alle außer Ihrem 3. Beispiel sind kein gültiges JSON, da es keinen Schlüssel im Wörterbuch gibt
0 Stimmen
Aktualisiert mit ein paar weiteren Versuchen. Erhalte immer noch Parse-Fehler.
0 Stimmen
Ein Json-Objekt ist nur ein Objektliteral? oder nicht wirklich?
0 Stimmen
Ich glaube, ich habe das gleiche Problem. Ich sehe gerade die Fehlermeldung in FireBug: "[Exception... "'SyntaxError: JSON.parse' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]". Gibt es schon eine Lösung für dieses Problem?
0 Stimmen
Ich halte dies für einen Fehler von jQuery. Ich habe Rest Aufrufe, die zurück Arrays zurückgeben. Zum Beispiel, /rest/orders. Wenn es keine Bestellungen gibt, serialisiere ich eine leere Java ArrayList, die null Bestellungen repräsentiert, und ich erhalte 200 Status mit parseerror. Das ist nicht richtig. Ich erwarte, dass mein Datenobjekt null ist. Ich könnte zwar einfach "[]" für ein leeres Array ausgeben, aber ich verwende ein Apache-Framework, das die gesamte Serialisierung für mich übernimmt, so dass ich die Übergabe von Java-Objekten und einer Zeichenkette mit "[]" nicht vermischen kann.