我有一个 json 文件,其中包含一个对象内的 json 字符串:
{
"requestType": "POST",
"response": {
"size": 78,
"text": "{\"recordID\":123, \"title\":\"Hello World\", \"content\":\"Lorem ipsum...\"}"
}
}
我需要使用 json 命令行解释器 jq 将 .response.text
字符串的内容解释为 json .
当我运行这个命令时:
jq '.response.text | @json'
输出:"\"{\\\"recordID\\\":123,\\\"title\\\":\\\"Hello World\\\",\\\"content\\\":\\\"Lorem ipsum...\\\"}\""
我得到了一些奇怪的转义 json 字符串,而不是我可以通过以下方式访问的 json:.response.text | @json | .recordID
.
我意识到@json
函数会取json并输出一个json转义字符串,所以肯定有别的办法,但是@text
好像不行任何东西。
有没有办法将一串转义的 json 转换为实际的 json,我可以使用如下命令解析:jq '.response.text | @json | .title'
并得到这个输出:"Hello World"
?
最佳答案
使用 fromjson
.
它将字符串解析为相应的 json 值。 tojson
(和 @json
)反其道而行之,获取一个 json 值并将其转换为字符串。
所以你可以这样做:
.response.text | fromjson.title
https://stackoverflow.com/questions/34340549/