JOLT转换删除除一个以外的所有字段

时间:2017-09-29 13:39:32

标签: json jolt

我想删除json中除名为foo之外的所有字段。我使用了转换规范,如下所示:

[
  {
    "operation": "remove",
    "spec": {
      "^(?!foo).*$": ""
    }
  }
]

我尝试在http://jolt-demo.appspot.com/#inception上执行此操作,但它不起作用,它输出输入json,未转换。我做错了吗?

1 个答案:

答案 0 :(得分:2)

是的,"转移"是否支持任何"正则表达式"匹配" "以外的其他" ^(?!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"
    }
  }
]

将数据从输入复制到新输出,所有其他操作(默认,删除,基数等)修改输入。

相关问题