"SyntaxError: Unerwartetes Token:" bei der Eingabe von {"a": "", "b": ""} json in der Konsole

8

Ich erhalte Fehler, sowohl in den Chrome- als auch in den Firefox-Entwicklertools, wenn ich folgendes auswerten möchte:

%Vor%

jsonlint.com sagt mir, dass es gültig ist. Putting diesen Code in einer tatsächlichen Javascript-Datei und läuft es gut. Die Fremdheit taucht nur auf, wenn ich dies in der Konsole in Chrome-Entwicklertools oder Firebug ausführe. Was ist hier los?

    
morgancodes 10.05.2012, 16:04
quelle

2 Antworten

9

Sie können JSON nicht in der Konsole ausführen. Die JavaScript-Engine hält eine block-Anweisung mit einem Label für möglich.

Also das:

%Vor%

wird als Blockanweisung interpretiert. Der "a": -Teil wird als Label interpretiert. Der Code% Teil wird als Ausdruck interpretiert (zwei String-Literale und ein Komma-Operator dazwischen). Jetzt ist das zweite "", "b" -Zeichen in dieser Position ungültig ... Als nächstes wird : als String-Literal interpretiert, und "a" ist an dieser Position nicht gültig.

Sie arbeiten mit JSON wie folgt:

  1. Sie haben es in eine Datei : eingefügt,
  2. Sie rufen es über Ajax als String ab,
  3. Sie analysieren die Zeichenfolge in ein Objekt mit .json .

(Sie können JSON-Daten beispielsweise auch als String in einer Variablen oder im JSON.parse() -Objekt speichern. In Bezug auf JavaScript sollten JSON-Daten immer als Zeichenfolgenwert verwendet werden.)

    
Šime Vidas 10.05.2012, 16:10
quelle
7

Tatsächlich können Sie für einmalige Tests (meine hauptsächliche Verwendung der Debug-Konsole) JSON-Objektsyntax eingeben, aber Sie müssen es einer Variablen zuweisen:

%Vor%     
Andy 25.10.2012 17:16
quelle