使用未知键进行Jolt转换JSON规范

时间:2020-08-26 09:50:56

标签: java jolt

我想使用JOLT将下面的输入json转换为输出json。这里的主要问题是在列表中,我必须删除一些根键(Param1,Param2,...)会动态变化的字段。我尝试低于规格,但没有用。 在这种情况下需要帮助。

Input JSON : [
  {
    "paramCollection": [
      {
        "Param1": {
          "value": 1,
          "limit": "10"
        }
      },
      {
        "Param2": {
          "value": 1,
          "limit": "20"
        }
      }
    ]
  }
]

Output JSON : [ {
  "paramCollection" : [ {
    "Param1" : {
      "value" : 1
    }
  }, {
    "Param2" : {
      "value" : 1
    }
  } ]
} ]

spec : [
  {
    "operation": "remove",
    "spec": {
      "*": {
        "paramCollection" : {
          "*": {
            "[&1].[&1].limit": ""
          }
        }
      }
    }
  }
]

1 个答案:

答案 0 :(得分:1)

您几乎是正确的。这是应该稍作修改的规范:

[
  {
    "operation": "remove",
    "spec": {
      "*": {
        "paramCollection": {
          "*": {
            "*": {
              "limit": ""
            }
          }
        }
      }
    }
  }
]

[&1].[&1].似乎多余并且不正确。看来remove operation不支持apmersand(&)通配符。参见shift operation docs

'&'通配符

  • 在LHS(左侧-输入JSON键)和RHS(输出数据路径)上有效