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

嵌套JSON指定部分迭代及转CSV的PowerShell实现求助

嵌套JSON指定部分迭代及转CSV的PowerShell实现求助

嘿,我来帮你搞定这个JSON转CSV的问题!先看看你现有代码里的几个小问题,再一步步给你修正并实现需求。

首先,你的JSON结构里answers下的键是字符串"1",直接用$.Answers.1这种写法在PowerShell里会报错,因为数字开头的属性名需要用引号包裹;另外你代码里的变量引用也有错误,比如$._prettyFormat应该指向迭代对象的属性。

先看修正后的完整实现代码

假设你是从某个JSON对象(比如文件读取或管道传入)处理数据,这里给出通用的解决方案:

# 模拟你的原始JSON数据(如果是从文件读取,用Get-Content 'yourfile.json' | ConvertFrom-Json即可)
$jsonInput = @"
{
    "answers": {
        "1": {
            "name": "name",
            "order": "1",
            "sublabels": "{\"prefix\":\"Prefix\",\"first\":\"First Name \\/ Nombre primero\",\"middle\":\"Middle Name\",\"last\":\"Last Name \\/ Nombre de familia\",\"suffix\":\"Suffix\"}",
            "text": "Name / Nombre",
            "type": "control_fullname",
            "answer": {
                "first": "ABC",
                "last": "DEF"
            },
            "prettyFormat": "ABC DEF"
        }
    }
}
"@

# 将JSON转换为PowerShell对象
$jsonObject = $jsonInput | ConvertFrom-Json

# 获取answers节点的内容
$answers = $jsonObject.answers

# 遍历answers中的所有条目(支持多个数字键的情况,比如"1"、"2"等)
$csvData = foreach ($entryProp in $answers.PSObject.Properties) {
    # 获取当前条目对应的对象
    $entry = $entryProp.Value
    # 构建CSV需要的字段,按需调整
    [PSCustomObject]@{
        "格式化全名" = $entry.prettyFormat
        "名字"       = $entry.answer.first
        "姓氏"       = $entry.answer.last
        "字段名称"   = $entry.name
        "字段显示文本" = $entry.text
    }
}

# 导出到CSV文件(可以修改路径和编码)
$csvData | Export-Csv -Path "姓名数据.csv" -NoTypeInformation -Encoding UTF8

关键知识点说明

  1. 处理数字属性名:因为answers下的键是"1",直接用$answers.1会语法错误,要么用$answers.'1'直接访问,要么用$answers.PSObject.Properties遍历所有属性(适合有多个类似键的场景)。
  2. 构建CSV结构:用[PSCustomObject]定义CSV的列和对应值,这样导出的CSV会有清晰的表头和数据行。
  3. 原始代码的错误修正:
    • 把foreach($i in $.Answers.1)改成foreach($entryProp in $answers.PSObject.Properties)(或foreach($i in $answers.'1')如果只有一个键)
    • 把$1 = $._prettyFormat改成$i.prettyFormat,同时建议不要用$1这种数字开头的变量名,换成更有意义的名字比如$formattedName

运行上面的代码后,你会得到一个包含指定字段的CSV文件,完美实现从嵌套JSON到CSV的转换~

备注:内容来源于stack exchange,提问作者Mandavali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:23:01