json - 在jq中将字符串转换为json

背景

我有一个 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/

相关文章:

php - 通过 JSON 发送 HTML 代码

javascript - 在 HTML 数据属性上添加 JSON 是不是很糟糕?

json - 如何重用 Jersey 的 JSON/JAXB 进行序列化?

java - Gson - 自动引号(“)转义?

java - 仅当不为空或不为空时 Gson 序列化字段

javascript - 在javascript中将json对象写入文本文件

c# - 如何使用 Newtonsoft.Json 包在 C#(4.0) 中解析我的 json 字符

javascript - 在 JavaScript 中将 JSON 对象转换为 CSV 格式

javascript - 如何使用 Javascript 将数据写入 JSON 文件

json - 自定义 MarshalJSON() 永远不会在 Go 中被调用