jq为现有的json添加大值

时间:2016-05-20 18:51:32

标签: json jq

我有一个大的现有json对象,我想在一个值非常大(很多K)的对象中添加一个新的键/值。

使用jq我可以这样做:

echo $item | jq '. + {readme:"big blob of text"}'

有没有一种方法可以用shell或jq变量替换big blob of text

1 个答案:

答案 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"
}