Json 如何取消带转义字符的字符串的引号?

Json 如何取消带转义字符的字符串的引号?,json,quotes,Json,Quotes,我有一个奇怪的json,里面有带strigified的json,如下所示: { "foo": "{\"bar\": \"bam\"}" } 我需要阅读内部json,比如: { "bar": "bam" } 这并不“奇怪”。它只是包含另一个json字符串的json。解码父json,提取foo键的值,解码该值,您将获得内部json: orig = "{ \"foo\": \"{\\"bar\\": \\"bam\\"}\" }"; data = JSON.parse(orig); foo = d

我有一个奇怪的json,里面有带strigified的json,如下所示:

{ "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
这并不“奇怪”。它只是包含另一个json字符串的json。解码父json,提取
foo
键的值,解码该值,您将获得内部json:

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

似乎也可以在命令行中使用jq和
fromjson
内置代码来解决这个问题:

echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq ".foo | fromjson"
或者使用
--原始输出

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

似乎也可以在命令行中使用jq和
fromjson
内置代码来解决这个问题:

echo '{ "foo": "{\"bar\": \"bam\"}" }' | jq ".foo | fromjson"
或者使用
--原始输出

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

我在bash中工作,所以第一次提取是用我在bash中工作,所以第一次提取是用你做的,这很好,我用curl得到了,用jq提取了带引号的字符串,这使它更难,但这样更容易。你是对的,这很好,我使用curl得到了这个结果,并使用jq提取了带引号的字符串,这使它变得更加困难,但这样做更容易。