我有一个很大的 JSON,我想保留它并进行一些更改。如何在不描述每个属性的情况下使用 JSONata 来做到这一点。
我希望拥有所有已经存在的属性的运算符,我只需要添加覆盖。
例如
{
$takeall,
"name": title //changes
"area": width * height
}
有什么办法吗?
我有一个很大的 JSON,我想保留它并进行一些更改。如何在不描述每个属性的情况下使用 JSONata 来做到这一点。
我希望拥有所有已经存在的属性的运算符,我只需要添加覆盖。
例如
{
$takeall,
"name": title //changes
"area": width * height
}
有什么办法吗?
我相信您正在寻找的是Transform Operator。
从 JSONata 文档:
... ~> | ... | ... | (变换)
对象变换运算符用于使用模式/动作语法修改对象结构的副本,以针对特定修改,同时保持结构的其余部分不变。
语法具有以下结构:头~> | 位置 | 更新 [, 删除] |
假设您的对象看起来像这样:
{
"width": 5,
"height": 5,
"someOtherProps": "something",
"title": "MyOlditle"
}
您可以使用转换运算符运行此示例查询:
$ ~> | $ | {
"area": width * height,
"title": "myNewTitle"
}, ["height", "width"] |
生产:
/** "someOtherProps" carried over from original object. **/
/** "height" and "width" removed after calculation. **/
{
"someOtherProps": "something",
"title": "myNewTitle",
"area": 25
}