我使用JQ解析一个JSON文件,如这里.但是,字符串值的结果包含预期的"双引号",如下所示:
$ cat json.txt | jq '.name'
"Google"
Run Code Online (Sandbox Code Playgroud)
如何将此管道传输到另一个命令以删除""?所以我明白了
$ cat json.txt | jq '.name' | some_other_command
Google
Run Code Online (Sandbox Code Playgroud)
我some_other_command
可以用什么?
Cha*_*ffy 228
使用该-r
选项发出原始字符串作为输出:
jq -r '.name' <json.txt
Run Code Online (Sandbox Code Playgroud)
Hey*_*his 60
所以对于包含这样的文件{"name": "Google"}
是
sample='{"name":"Google"}'
echo $sample| jq '.name'
"Google"
Run Code Online (Sandbox Code Playgroud)
使用--raw-output
帮助
echo $sample| jq --raw-output '.name'
Google
Run Code Online (Sandbox Code Playgroud)
但我偶然发现了这个问题,因为我正在使用--raw-output
像这样的 json 数组
sample='[{"name":"Yahoo"},{"name":"Google"}]'
echo $sample | jq --raw-output 'map(.name)'
[
"Yahoo",
"Google"
]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么引号仍然存在。我偶然发现了这篇文章,现在我知道添加| .[]
可以解决问题!
echo $sample | jq --raw-output 'map(.name)| .[]'
Yahoo
Google
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38194 次 |
最近记录: |