Wie kann ich eine Zeichenfolge, die ein Objekt beschreibt, mithilfe von JavaScript (oder jQuery) in eine JSON-Zeichenfolge konvertieren?
Beispiel: Konvertieren Sie dies ( KEINE gültige JSON-Zeichenfolge):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
das mögen:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Ich würde es gerne vermeiden, eval()
wenn möglich.
data
-attrubute wie folgt gespeichert : <div data-object="{hello:'world'}"></div>
und ich möchte keine einfachen Anführungszeichen im HTML verwenden (daher ist es wahrscheinlich nicht vertrauenswürdig)
<div data-object='{"hello":"world"}'></div>
ist 100% gültiges HTML (was haben einfache Anführungszeichen damit zu tun, ihm zu vertrauen oder nicht?). Wenn Sie es so machen, können Sie es einfach JSON.parse
und es wird gut funktionieren. Hinweis: Die Schlüssel müssen ebenfalls in Anführungszeichen gesetzt werden.
<div data-object="{\"hello\":\"world\"}"></div>
. Wenn Sie kein gültiges JSON im Attribut verwenden möchten, müssen Sie Ihr eigenes Format erstellen und es selbst analysieren.