所以目前,如果输入是
{
"foo": "bar",
"tuna": "marlin"
}规范是
[
{
"operation": "shift",
"spec": {
"foo": "baz",
"tuna": "baz"
}
}
]输出是
{
"baz" : [ "bar", "marlin" ]
}如何不创建数组,而是用数组的最后一个元素重写"baz“键的值?
预期产出
{
"baz" : "marlin"
}发布于 2021-09-23 06:59:47
据我所知,您只想得到数组的最后一个元素。因此,在您的操作类型modify-overwrite-beta和lastElement()函数中再添加一个规范,如
[
{
"operation": "shift",
"spec": {
"*": "baz"
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": "=lastElement(@(1,&))"
}
}
]其中不需要显式地写入shift规范中的每个键,而是用星号替换它们。然后,第二个规范中的星号也表示所有的键(在本例中,这只是baz),并且旁边的符号复制键的名称,以表示相对值。
https://stackoverflow.com/questions/69287214
复制相似问题