Comment puis-je convertir une chaîne qui décrit un objet en une chaîne JSON à l'aide de JavaScript (ou jQuery)?
par exemple: Convertissez ceci ( PAS une chaîne JSON valide):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
dans ceci:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
J'adorerais éviter d'utiliser eval()
si possible.
data
-attrubute, comme ceci: <div data-object="{hello:'world'}"></div>
et je ne veux pas utiliser de guillemets simples dans le HTML (donc il n'est probablement pas digne de confiance)
<div data-object='{"hello":"world"}'></div>
est du HTML 100% valide (qu'est-ce que les guillemets simples ont à voir avec le fait de lui faire confiance ou non?). Si vous le faites de cette façon, vous pouvez le faire JSON.parse
et cela fonctionnera bien. Remarque: les clés doivent également être citées.
<div data-object="{\"hello\":\"world\"}"></div>
. Si vous ne souhaitez pas utiliser de JSON valide dans l'attribut, vous devrez créer votre propre format et l'analyser vous-même.