Arrays 在Powershell中将JSON数组对象转换为字符串

Arrays 在Powershell中将JSON数组对象转换为字符串,arrays,json,powershell,convertto-json,Arrays,Json,Powershell,Convertto Json,我使用的JSON如下所示: [ { "Ack": "no", "Rule": "dont", "Tags": [ "server" ], "Type": "blue" }, { "Ack": "no1", "Rule": "knock", "Tags": [

我使用的JSON如下所示:

[
    {
        "Ack":  "no",
        "Rule":  "dont",
        "Tags":  [
                     "server"
                 ],
        "Type":  "blue"
    },

    {
        "Ack":  "no1",
        "Rule":  "knock",
        "Tags":  [
                     "yellow",
                     "green"
                 ],
        "Type":  "multiplecolour"
    }

]
我需要将标记数组转换为逗号分隔的字符串[并在JSON文件中将该数组替换为转换后的字符串]。我已经尝试过从JSON转换,但是我正在努力以一种干净的方式将数组转换成字符串,仍然在学习PS,所以请耐心听我说

可能适合你。下面是一个将JSON字符串转换为PowerShell对象数组的示例,然后使用逗号分隔符连接每个对象的标记:

$json = @"
[
    {
        "Ack":  "no",
        "Rule":  "dont",
        "Tags":  [
                     "server"
                 ],
        "Type":  "blue"
    },
    {
        "Ack":  "no1",
        "Rule":  "knock",
        "Tags":  [
                     "yellow",
                     "green"
                 ],
        "Type":  "multiplecolour"
    }
]
"@

(ConvertFrom-Json -InputObject $json) `
    | ForEach-Object { $_.Tags = ($_.Tags -join ","); $_ } `
    | ConvertTo-Json `
    | Out-File -FilePath new.json

编辑:注意(正如@mklement0所指出的,
convertfromjson
周围的括号是通过管道传输对象的必要条件。

Nice,不过值得指出的是,
(…)
是必需的,因为它强制枚举@mri.o:请在将来预先说明所有要求-从您当前的问题中不清楚。也许Glenn愿意更新他的答案,但缺点是您必须使用
$\uTags=$\uTags-join“,”
,并通过管道连接到
ConvertToJSON
$jsonParameters=(ConvertFrom Json-InputObject$content)$jsonParameters | ForEach对象{$\uTags-join“,”}| ConvertTo Json | out file new.Json-这就是我用管道传输它的方式,new.Json的内容只是标记字符串@格伦。它没有正确地创建它。@mri.o那么,您的目的是复制JSON,唯一的区别是“标记”不再是一个数组,而是一个字符串属性,它包含一个或多个逗号分隔的值?例如,对于第二个数组元素,它会变成这样<代码>“标签”:“黄色,绿色”今天学到了一些新东西,谢谢@Glenn,最新更新有效!