如何将指定JSON结构转换为目标格式的CSV/Excel?
JSON转CSV格式的解决方案
原始数据与目标格式
原始JSON结构
[ { "test": "7799" }, { "Id": "sys", "test": 7799 }, { "ver": "1.0", "group": "v" }, { "testHashtag":"age" }, { "testHashtag": "age2" }, { "testHashtag":"age3" }, { "testHashtag": "age5" }, { "temp": "id" }, { "temp": "id2" }, { "temp": "id3" } ]
目标CSV格式
test;id;test;ver;group;testHashtag;temp 7799;sys;7799;1.0;v;age/age2/age3/age5;id2/id3
问题分析
直接用payload reduce (element,acc={}) -> acc ++ element合并会导致重复字段被覆盖,无法保留多个同名字段的值;手动索引payload.testHastag[0]只能获取单个值,无法批量处理所有同名字段。
解决方案(DataWeave代码)
%dw 2.0 output application/csv separator=";" --- [{ test: flatten(payload.*test) joinBy ";", id: payload.Id default "", ver: payload.ver default "", group: payload.group default "", testHashtag: payload.*testHashtag joinBy "/", temp: (payload.*temp filter ($ != "id")) joinBy "/" }]
代码说明
payload.*字段名:提取数组中所有对象的指定字段值,形成一个数组joinBy "分隔符":将数组元素用指定分隔符拼接成字符串flatten:处理字段值类型不一致(如test字段的字符串/数字)导致的嵌套数组,确保拼接正常filter ($ != "id"):过滤掉temp字段中不需要的"id"值
内容的提问来源于stack exchange,提问作者Anonim
相关产品推荐
相关产品推荐

