带有未知键的 Jolt Transform JSON 规范

Jolt Transform JSON Spec with Unknown keys

我想使用 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": ""
          }
        }
      }
    }
  }
]

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

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

[&1].[&1]. 似乎多余且不正确。看来 remove operation does not support the apmersand (&) wildcard. See the shift operation docs

'&' Wildcard

  • Valid on the LHS (left hand side - input JSON keys) and RHS (output data path)