В приведенном выше простом примере вы можете сделать это с помощью двух простых замен регулярных выражений:
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";
str.replace(/(\w+):/g, '"$1":').replace(/'/g, '"');
=> '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
Большое предостережение : этот наивный подход предполагает, что у объекта нет строк, содержащих символ '
или :
. Например, я не могу придумать хороший способ преобразовать следующую строку объекта в JSON без использования eval
:
"{ hello: 'world', places: [\"America: The Progressive's Nightmare\"] }"