Convertit l'objet en une chaîne JSON

Comment puis-je convertir une chaîne de caractères qui décrit un objet dans une chaîne JSON à l'aide de JavaScript (jQuery)?

e.g: Convertir ce (PAS une chaîne JSON valide):

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"

dans cette:

str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'

J'aimerais éviter d'utiliser eval() si possible.

  • Pourquoi est votre chaîne non valide JSON en premier lieu? Comment allez-vous générer cela?
  • La chaîne est stockée dans un data-attrubute, comme ceci: <div data-object="{hello:'world'}"></div> et je ne veux pas utiliser les guillemets simples dans le code HTML(donc c'est sans doute de ne pas être digne de confiance)
  • <div data-object='{"hello":"world"}'></div> est 100% valide en HTML (ce qui ne les guillemets simples à faire avec la confiance ou pas?). Si vous faites de cette façon, vous pouvez simplement JSON.parse et ça marchera très bien. Remarque: les clés doivent être cités aussi.
  • merci pour vos efforts! Je voulais juste trouver un moyen de contourner avoir à utiliser les guillemets simples en HTML (même si c'est 100% valide) et la notation JSON.
  • Ils ont moyen de contourner est de ne pas mettre de JSON dans un attribut HTML, en premier lieu. Je suppose que vous pourriez utiliser des guillemets, et d'échapper à ceux dans le JSON <div data-object="{\"hello\":\"world\"}"></div>. Si vous ne souhaitez pas utiliser JSON valide dans l'attribut, alors vous allez avoir à faire votre propre format et d'analyser vous-même.
  • Ce sont juste des conseils au lieu de répondre. - Vous pouvez utiliser http://www.jsoneditoronline.org/ pour vérifier mon JSON. - En passant chaîne JSON à partir de code derrière conscient de l'ajout approprié des caractères d'échappement.

InformationsquelleAutor snorpey | 2012-01-27