Ищите библиотеку JSON для разбора - PullRequest
0 голосов
/ 28 мая 2019

Существует ли библиотека Javascript JSON для анализа строки, подобной этой?

‘{ param: “value” }’

Я знаю, что JSON.parse (para {param: «value»} ’) не будет. Поскольку вокруг param нет кавычек, выдается ошибка:

Unexpected token p in JSON at position 2

Но я могу создавать объекты Javascript со стандартным форматом JSON без кавычек вокруг имен свойств:

const o = { param: ‘value’ };

Так что я не понимаю, почему такая строка, как m {param: «value»} », не будет доступна для анализа JSON.parse (…) этого не сделает, но есть ли другие библиотеки синтаксического анализа JSON, которые будут?

Я программирую на Angular 7.

1 Ответ

0 голосов
/ 28 мая 2019

Я собираюсь предположить, что причудливые кавычки в вашем вопросе являются ошибкой, и что ваша настоящая строка выглядит следующим образом:

{ param: "value" }

Вы можете проанализировать ее, используя eval:

result = eval("(" + str + ")");

(Если действительно присутствуют причудливые кавычки, вы, вероятно, захотите заменить их на replace или аналогичные, но имейте в виду, что при этом также будут заменены внутри строк.)

Live Пример:

const str = '{ param: "value" }';
const result = eval("(" + str + ")");
console.log(`result.param = ${result.param}`);

ВНИМАНИЕ: Использование eval таким образом позволяет поставщику строки запускать произвольный код в вашем коде.Итак:

  • Никогда не используйте eval в строке пользователя A в сеансе пользователя B;это позволяет пользователю A запускать произвольный код в браузере пользователя B - очень плохая идея.
  • никогда не использовать eval для строки, предоставленной пользователем на вашем сервере (потому что тогда вашсервер в основном пользователь B :-))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...