Como converter uma string que descreve um objeto em uma string JSON usando JavaScript (ou jQuery)?
por exemplo: Converta isso ( NÃO é uma string JSON válida):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
nisso:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Eu adoraria evitar o uso, eval()
se possível.
data
-attrubute, como este: <div data-object="{hello:'world'}"></div>
e eu não quero usar aspas simples no HTML (por isso provavelmente não é para ser confiável)
<div data-object='{"hello":"world"}'></div>
é 100% HTML válido (o que aspas simples têm a ver com confiar ou não?). Se você fizer dessa maneira, poderá JSON.parse
fazê-lo e funcionará bem. Nota: as chaves também precisam ser citadas.
<div data-object="{\"hello\":\"world\"}"></div>
. Se você não quiser usar JSON válido no atributo, precisará criar seu próprio formato e analisá-lo.