如何在数据编织1.0中将json对象转换为小写字母?

问题描述

你好,我有一个json文件作为有效负载,并努力进行转换以转换为小写的元素及其值。

{
 "Name" : "John".
 "e-mails" : ['Email1@mail.com','email2@Gmail.com']
}

如果其值中没有数组,则该选项可以像where

但是如何处理数组?

预期输出:

{
 "name" : "john".
 "e-mails" : ['email1@mail.com','email2@gmail.com']
}

有什么建议吗?

解决方法

您需要使用递归函数来覆盖其他类型。

%dw 1.0
%output application/json
%function lowerAll(x)
        x match {
          :object ->  $ mapObject {
                (lower $$): lowerAll($) // assumes all keys are strings
          },:array  ->  $ map lowerAll($),:string -> lower $,default  ->  $
        }  
---
lowerAll(payload)

输入:

{
 "Name" : "John","e-mails" : ["E1mail1@mail.com","email2@Gmail.com"]
}

输出:

{
  "name": "john","e-mails": [
    "e1mail1@mail.com","email2@gmail.com"
  ]
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...