如何在对象顶部插入字段?
How to insert a field at the top of an object?
这是我的代码
element='{"x":"zero"}'
example='[
{
"a":"one",
"b":"two",
"c":"three"
},
{
"d":"four",
"e":"five",
"f":"six"
}]'
jq --argjson el "$element" '.[] += $el' <<< $example
目前输出
[
{
"a":"one",
"b":"two",
"c":"three",
"x":"zero"
},
{
"d":"four",
"e":"five",
"f":"six",
"x":"zero"
}
]
但我想让 "x":"zero"
成为所有数组元素的第一个元素,而不是最后一个。
用 .[]
迭代器反转变量是没有意义的。知道如何做到这一点吗?
为了使新字段出现在顶部,持有它的对象必须首先出现在添加语句中。例如:
$ jq --argjson el "$element" 'map($el + .)' <<< $example
[
{
"x": "zero",
"a": "one",
"b": "two",
"c": "three"
},
{
"x": "zero",
"d": "four",
"e": "five",
"f": "six"
}
]
这是我的代码
element='{"x":"zero"}'
example='[
{
"a":"one",
"b":"two",
"c":"three"
},
{
"d":"four",
"e":"five",
"f":"six"
}]'
jq --argjson el "$element" '.[] += $el' <<< $example
目前输出
[
{
"a":"one",
"b":"two",
"c":"three",
"x":"zero"
},
{
"d":"four",
"e":"five",
"f":"six",
"x":"zero"
}
]
但我想让 "x":"zero"
成为所有数组元素的第一个元素,而不是最后一个。
用 .[]
迭代器反转变量是没有意义的。知道如何做到这一点吗?
为了使新字段出现在顶部,持有它的对象必须首先出现在添加语句中。例如:
$ jq --argjson el "$element" 'map($el + .)' <<< $example
[
{
"x": "zero",
"a": "one",
"b": "two",
"c": "three"
},
{
"x": "zero",
"d": "four",
"e": "five",
"f": "six"
}
]