我有一个奇怪的json里面有strigified jsons,像这样:
{ "foo": "{\"bar\": \"bam\"}" }
我需要阅读内部json,例如:
{ "bar": "bam" }
答案 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