【发布时间】:2016-03-24 06:33:28
【问题描述】:
背景
我有一个 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"?
【问题讨论】:
标签: json command-line jq