Jak przekonwertować ciąg opisujący obiekt na ciąg JSON przy użyciu JavaScript (lub jQuery)?
np .: Przekonwertuj to ( NIE jest to prawidłowy ciąg JSON):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
zaangażowany w to:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Chciałbym uniknąć używania, eval()
jeśli to możliwe.
data
-attrubute, w ten sposób: <div data-object="{hello:'world'}"></div>
i nie chcę używać pojedynczych cudzysłowów w
<div data-object='{"hello":"world"}'></div>
jest w 100% poprawnym kodem HTML (co mają wspólnego cudzysłowy z zaufaniem lub nie?). Jeśli zrobisz to w ten sposób, możesz to po prostu JSON.parse
zrobić i będzie dobrze. Uwaga: klucze też muszą być cytowane.
<div data-object="{\"hello\":\"world\"}"></div>
. Jeśli nie chcesz używać prawidłowego JSON w atrybucie, będziesz musiał stworzyć własny format i samodzielnie go przeanalizować.