小编Jon*_*ger的帖子

使用 JQ 和 bash 处理包含新行的 JSON

我收到一个带有 curl 调用的 JSON,类似于以下内容:

output="$(curl -s "$api_url")"
Run Code Online (Sandbox Code Playgroud)

此输出为 JSON 格式,必须由 jq 处理,如下所示:

{
    "test": "Hello\nThere!"
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用以下echo管道组合来使 jq 工作:

test="$(echo "$output" | jq -r ".test")"
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于示例输入,因为它在 JSON 和 JQ 错误中包含新行 parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 2, column 6

有什么办法可以改变数据,让 jq 可以理解吗?

bash echo jq

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

echo ×1

jq ×1