首页 > 解决方案 > Jolt Transformation - 小写 JSON 列表中的所有键

问题描述

如何将此json列表中的所有键转换为小写

[
  {
    "KEY01": "1111",
    "KEY02": "VALUE01",
    "KEY03": true
  },
  {
    "KEY01": "2222",
    "KEY02": "VALUE02",
    "KEY03": true
  }
]

期望的结果

[
  {
    "key01": "1111",
    "key02": "VALUE01",
    "key03": true
  },
  {
    "key01": "2222",
    "key02": "VALUE02",
    "key03": true
  }
]

我使用了这个颠簸转换公式,它只生成了一个对象,其值只被转换为小写

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": "=toLower"
      }
    }
  }
]

结果

[{
    "KEY01": "1111",
    "KEY02": "value01",
    "KEY03": true
}, {
    "KEY01": "2222",
    "KEY02": "value02",
    "KEY03": true
}]

标签: jsonlistlowercasejolt

解决方案


这会产生所需的结果:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "$": "[&2].&1.key",
          "@": "[&2].&1.value"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": {
          "key": "=toLower"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "value": "[&2].@(1,key)"
        }
      }
    }
  }
]

产生以下内容:

[ 
   {
     "key01" : "1111",
     "key02" : "VALUE01",
     "key03" : true
   }, 
   {
     "key01" : "2222",
     "key02" : "VALUE02",
     "key03" : true
   }
]

推荐阅读