Как я могу преобразовать строку, которая описывает объект в строку JSON, используя JavaScript (или jQuery)?
Например: преобразовать это ( НЕ допустимая строка JSON):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
в это:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Я хотел бы избежать использования, eval()
если это возможно.
data
-attrubute, например, так: <div data-object="{hello:'world'}"></div>
я не хочу использовать одинарные кавычки в HTML (поэтому, вероятно, ей нельзя доверять)
<div data-object='{"hello":"world"}'></div>
это 100% правильный HTML (как одиночные кавычки связаны с доверием или нет?). Если вы сделаете это таким образом, вы можете просто, JSON.parse
и это будет работать нормально. Примечание: ключи тоже должны быть в кавычках.
<div data-object="{\"hello\":\"world\"}"></div>
. Если вы не хотите использовать действительный JSON в атрибуте, вам придется создать свой собственный формат и проанализировать его самостоятельно.