我有一个大的现有json对象,我想在一个值非常大(很多K)的对象中添加一个新的键/值。
使用jq我可以这样做:
echo $item | jq '. + {readme:"big blob of text"}'
有没有一种方法可以用shell或jq变量替换big blob of text
?
答案 0 :(得分:2)
以下说明如果您的jq版本支持“--argjson”可以执行的操作。使用--arg
和--argfile
可以完成类似的操作。
#!/bin/bash
function bigblob {
cat <<EOF
big blob of text
EOF
}
item='{"a": "a"}'
bigblob | jq -R --argjson item "$item" '$item + {"readme": .}'
结果:
{
"a": "a",
"readme": "big blob of text"
}