У меня есть некоторый json, который находится в текстовом файле, который уже экранирован:
"{\"hey\":\"there\"}"
Когда я пытаюсь прочитать файл:
File.open("\file\path.txt").read
Он сбрасываетсяснова содержимое, так что теперь оно дважды экранировано:
"\"{\\\"hey\\\":\\\"there\\\"}\""
Есть ли способ предотвратить экранирование?
Или есть простой способ отменить экранирование строки после еебыл прочитан и сбежал?
Спасибо.
РЕДАКТИРОВАТЬ:
Ответы имеют смысл, но я все равно не могу разобрать JSON.
irb(main):018:0> json
=> "\"{\\\"hey\\\":\\\"there\\\"}\"\n"
irb(main):019:0> puts json
"{\"hey\":\"there\"}"
=> nil
irb(main):017:0> x = JSON.parse(json)
JSON::ParserError: 751: unexpected token at '"{\"hey\":\"there\"}"
'
Где находится неожиданный токен?
Спасибо.
РЕДАКТИРОВАТЬ 2:
Этот вопрос SO имелответ
«Проблема в том, что ваш файл может быть действительным JS, но это не допустимый JSON, поэтому библиотеки JSON склонны отклонять его.»
Я доверяю источнику(я), так что, если я бегу:
x = JSON.parse(eval(json))
это работает!
Спасибо.