我在Windows 7上使用jq 1.6,并想将动态生成的数组添加到json文件。 该数组在该文件中尚不存在。
我有以下JSON结构(为清楚起见而简化):
{
"policies": {
"SearchBar": "separate",
"SearchEngines": {
"PreventInstalls": false
}
}
}
我想基于动态值生成一个数组,最后创建以下输出:
{
"policies": {
"SearchBar": "separate",
"SearchEngines": {
"PreventInstalls": false,
"Remove": [
"Twitter",
"Wikipedia (en)"
]
}
}
}
Remove数组的内容存储在(cmd)%variable%中。 我发现那条线
jq -n --arg items "%variable%" "{ Remove: $items | split(\",\") }"
产生我想要的数组:
{
"Remove": [
"Twitter",
"Wikipedia (en)"
]
}
将此数组插入原始文件的最佳方法是什么?
答案 0 :(得分:1)
鉴于字符串输入字符串Twitter,Wikipedia (en)
,您可以使用jq更新JSON数据:
<file jq --arg i 'Twitter,Wikipedia (en)' '.policies.SearchEngines += ({ Remove: $i | split(",") })'
{
"policies": {
"SearchBar": "separate",
"SearchEngines": {
"PreventInstalls": false,
"Remove": [
"Twitter",
"Wikipedia (en)"
]
}
}
}