小编RJ-*_*dam的帖子

在jq中将字符串转换为json

背景

我有一个json文件,在对象中包含一个json字符串:

{
    "requestType": "POST",
    "response": {
        "size": 78,
        "text": "{\"recordID\":123, \"title\":\"Hello World\", \"content\":\"Lorem ipsum...\"}"
    }
}
Run Code Online (Sandbox Code Playgroud)

jq.response.text使用json命令行interpereter,jq,我需要将字符串的内容作为json插入.

当我运行此命令时:

jq '.response.text | @json'
Run Code Online (Sandbox Code Playgroud)

输出: "\"{\\\"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"

command-line json jq

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

command-line ×1

jq ×1

json ×1