【问题标题】:powershell with JSON and embedded objects带有 JSON 和嵌入式对象的 powershell
【发布时间】:2021-01-18 16:16:57
【问题描述】:

我有以下 JSON 文件的 ConvertFrom-Json 输出:

Id                 : 1
ItemName           : TestFile
SharingInformation : {@{RecipientEmail=complianceadmin@dev.onmicrosoft.com; ResharePermission=Read}, @{RecipientEmail=test@dev.onmicrosoft.com; ResharePermission=Read}}

我想将此数据以下列方式保存到 .csv 文件中:

Id                 : 1
ItemName           : TestFile
RecipientEmail     : test@dev.domain.com; test2@dev.domain.com
ResharePermission  : Read; Write

作为列.. 在这里您可以找到我的部分实际 PS 代码(当有多个嵌入值时,这些代码无法正常工作):

$JSONFile = $ExctratedFile | ConvertFrom-Json
$psObjectForCsv = $JSONFile | ForEach-Object {
    [PSCustomObject]@{
        "id"=$_.Id
        "ItemName"=$_.ItemName
        "RecipientEmail"=$_.SharingInformation.RecipientEmail
        "ResharePermission"=$_.SharingInformation.ResharePermission

    }
}
$psObjectForCsv | Export-Csv -path $fileName -Force -NoTypeInformation
} 

您对如何实现这一点有任何想法吗?

感谢您的帮助! 问候

【问题讨论】:

  • "RecipientEmail"=$_.SharingInformation.RecipientEmail -join '; ' 这样的东西可以工作。
  • 什么是 $activities ?你需要一个 For-Each 是的,但不是那样的。第二个问题,你做了ConvertFrom-Json,你仍然得到一些“@{}”。那是一个字符串吗?
  • @zett42 是的,工作正常.. 谢谢! :)) 我还有另一个问题.. 如果我想将属性 RecipientEmail 和 ResharePermission 合并在一起怎么办?为了获得一个属性,即用户:(读取) test@dev.domain.com ; (写)test2@dev.domain.com 等等...问候!

标签: json powershell


【解决方案1】:

用分隔符连接多个值:

$psObjectForCsv = $data | ForEach-Object {
    [PSCustomObject]@{
        id = $_.Id
        ItemName = $_.ItemName
        RecipientEmail = $_.SharingInformation.RecipientEmail -join ";"
        ResharePermission = $_.SharingInformation.ResharePermission -join ";"
    }
}

【讨论】:

  • 是的,这很好......谢谢! :)) 我还有另一个问题.. 如果我想将属性 RecipientEmail 和 ResharePermission 合并在一起怎么办?为了获得一个属性,即用户:(读取) test@dev.domain.com ; (写)test2@dev.domain.com 等等...问候!
  • @anders1990 这基本上是一个完全不同的问题。在 cmets 中询问后续问题效果不佳。您可以单独询问(打开一个新线程)或自己尝试。提示:使用for 循环。
猜你喜欢
  • 2023-02-04
  • 2020-07-30
  • 2021-03-08
  • 1970-01-01
  • 2021-03-18
  • 2019-03-15
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多