Come posso convertire una stringa che descrive un oggetto in una stringa JSON usando JavaScript (o jQuery)?
ad es .: Converti questo ( NON una stringa JSON valida):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
in questo:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Mi piacerebbe evitare di usare eval()
se possibile.
data
-attrubute, in questo modo: <div data-object="{hello:'world'}"></div>
e non voglio usare virgolette singole in HTML (quindi probabilmente non ci si può fidare)
<div data-object='{"hello":"world"}'></div>
è un HTML valido al 100% (cosa hanno a che fare le virgolette singole con la fiducia o no?). Se lo fai in questo modo, puoi JSON.parse
farlo e funzionerà bene. Nota: anche le chiavi devono essere quotate.
<div data-object="{\"hello\":\"world\"}"></div>
. Se non desideri utilizzare un JSON valido nell'attributo, dovrai creare il tuo formato e analizzarlo da solo.