Ich bin überrascht, json.length
gibt alles zurück; Diese JSON-Zeichenfolge ist ungültig. Die äußersten geschweiften Klammern ({}
) bezeichnen ein Objekt, das Schlüssel und Werte enthalten muss, aber es enthält nur einen Wert (das Array ohne Schlüssel).
Wenn Sie die geschweiften Klammern entfernen, sollte es ordnungsgemäß funktionieren. Hast du sie dort hingebracht, vielleicht weil du es gesehen hast? Wenn dies der Fall ist, möchten Sie Klammern (()
), keine geschweiften Klammern.
Beachten Sie, dass eval
auf JSON Strings nicht sicher ist, möchten Sie einen JSON-Decoder verwenden, die nicht eval
(wie json2.js nicht verwendet, die eval
verwendet, aber erst nach sehr sorgfältig sicher es ist gewährleistet, dies zu tun, es zu ändern wenn nötig), für optimale Sicherheit. Die Klammern helfen, aber sie sind keine vollständige Lösung.
hasOwnProperty verwenden sollte: 'for (var x in Personen) if (persons.hasOwnProperty (x)) zählen ++; ' – vsync