You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:10:45