如何取消引用包含转义字符的字符串?

时间:2016-08-17 14:30:22

标签: json quotes

我有一个奇怪的json里面有strigified jsons,像这样:

{ "foo": "{\"bar\": \"bam\"}" }

我需要阅读内部json,例如:

{ "bar": "bam" }

2 个答案:

答案 0 :(得分:2)

似乎它也可以在命令行中使用jq与fromjson内置来解决:

echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq ".foo | fromjson"

或使用--raw-output

echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq --raw-output ".foo" | jq "."

答案 1 :(得分:0)

这并不“奇怪”。它只是包含另一个json字符串的json。解码父json,提取foo键的值,解码该值,然后你将得到你的内部json:

orig = "{ \"foo\": \"{\\"bar\\": \\"bam\\"}\" }";
data = JSON.parse(orig);
foo = data.foo;
subdata = JSON.parse(foo);
alert(subdata.bar); // bam