JOLT 转换删除除一个字段之外的所有字段
JOLT transformation remove all fields except one
我想从 json 中删除除名为 foo
的字段之外的所有字段。我使用了如下所示的转换规范:
[
{
"operation": "remove",
"spec": {
"^(?!foo).*$": ""
}
}
]
我尝试在 http://jolt-demo.appspot.com/#inception 上执行此操作,但它不起作用,它输出未转换的输入 json。我做错了什么吗?
是的,"shift" 确实支持除“”以外的任何 "regex" 匹配,因此“^(?!foo).$”是不会工作。
我认为你的情况更好,使用 "shift" 匹配 "foo" 并将其复制到输出。与 "shift" 规范不匹配的任何内容都不会复制到输出中。
规格
[
{
"operation": "shift",
"spec": {
// matches top level key "foo" in the intput, and copies the
// value at that location to the output map with key "foo".
"foo" : "foo"
}
}
]
Shift 将数据从输入复制到新的输出,所有其他操作(默认、删除、基数等)修改输入。
我想从 json 中删除除名为 foo
的字段之外的所有字段。我使用了如下所示的转换规范:
[
{
"operation": "remove",
"spec": {
"^(?!foo).*$": ""
}
}
]
我尝试在 http://jolt-demo.appspot.com/#inception 上执行此操作,但它不起作用,它输出未转换的输入 json。我做错了什么吗?
是的,"shift" 确实支持除“”以外的任何 "regex" 匹配,因此“^(?!foo).$”是不会工作。
我认为你的情况更好,使用 "shift" 匹配 "foo" 并将其复制到输出。与 "shift" 规范不匹配的任何内容都不会复制到输出中。
规格
[
{
"operation": "shift",
"spec": {
// matches top level key "foo" in the intput, and copies the
// value at that location to the output map with key "foo".
"foo" : "foo"
}
}
]
Shift 将数据从输入复制到新的输出,所有其他操作(默认、删除、基数等)修改输入。