我想用 jq 在 json 上插入新的根元素,我的目标是通过在根一级之前添加一级来操作 json 层次结构:
json 示例:
{
"option1":true
}
Run Code Online (Sandbox Code Playgroud)
我想获得:
{
"root":
{
"option1":true
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
$ echo '{"option1":true}' | jq -r '. + {"root"}'
它将元素插入到第一级,而不是之前:
{
"root":null
"option1":true
}
Run Code Online (Sandbox Code Playgroud)
有可能吗?
将.其放在您想要输入数据的位置。root在这种情况下,这就是以字符串为键的值。
jq '{"root": .}' <<<'{"option1": true}'
Run Code Online (Sandbox Code Playgroud)
...正确发出:
jq '{"root": .}' <<<'{"option1": true}'
Run Code Online (Sandbox Code Playgroud)