У меня есть странное с JSON strigified jsons внутри, как это:Как удалить строку с экранированными символами?
{ "foo": "{\"bar\": \"bam\"}" }
мне нужно прочитать внутреннюю JSON, например:
{ "bar": "bam" }
У меня есть странное с JSON strigified jsons внутри, как это:Как удалить строку с экранированными символами?
{ "foo": "{\"bar\": \"bam\"}" }
мне нужно прочитать внутреннюю JSON, например:
{ "bar": "bam" }
Это не "странно". Это просто json, содержащий другую строку json. Расшифруйте родительский JSON, извлечь значение ключа foo
, декодировать значение, и вы получите ваш внутренний JSON:
orig = "{ \"foo\": \"{\\"bar\\": \\"bam\\"}\" }";
data = JSON.parse(orig);
foo = data.foo;
subdata = JSON.parse(foo);
alert(subdata.bar); // bam
Вы правы, это работает отлично, я получил это, используя curl, и извлек строку с кавычками, используя jq, и это усложнило работу, но это проще. – eloyesp
кажется, что она может быть решена в командной строке с помощью JQ с fromjson
встроенные:
echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq ".foo | fromjson"
или с помощью --raw-output
echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq --raw-output ".foo" | jq "."
Я работаю в Баше, так что первая добыча была выполнена с использованием [JQ] (https://stedolan.github.io/jq/) – eloyesp