¿Cómo puedo convertir una cadena que describe un objeto en una cadena JSON usando JavaScript (o jQuery)?
por ejemplo: Convertir esto ( NO una cadena JSON válida):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
dentro de esto:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Me encantaría evitar usar eval()
si es posible.
data
atributo, como este: <div data-object="{hello:'world'}"></div>
y no quiero usar comillas simples en el HTML (por lo que probablemente no sea de confianza)
<div data-object='{"hello":"world"}'></div>
es HTML 100% válido (¿qué tienen que ver las comillas simples con confiar en él o no?). Si lo hace de esta manera, puede JSON.parse
hacerlo y funcionará bien. Nota: las claves también deben ser citadas.
<div data-object="{\"hello\":\"world\"}"></div>
. Si no desea utilizar un JSON válido en el atributo, deberá crear su propio formato y analizarlo usted mismo.