【发布时间】:2022-03-16 17:15:05
【问题描述】:
我有一个关于 如何使用 Powershell 将嵌套的 JSON 展平并转换为 CSV。 下面是我的 JSON,它是从 Office 365 获取的包含许多用户消息的邮件消息日志,我需要过滤列、展平并转换为 CSV:
createdDateTime,
receivedDateTime,
from_name
from_adress
To_name_1
To_adress_2
To_name_2
To_adress_2
...
“发件人”字段只有一个数据。 但是“toRecipients”是一个数组。
{
...
"createdDateTime": "xxxx-xx-xx",
"receivedDateTime": "xxxx-xx-xx",
"isRead": true,
"from": {
"emailAddress": {
"name": "John",
"adress": "john@onmicrosoftware.com"
}
},
"toRecipients": [
{
"emailAddress": {
"name": "Amy",
"adress": "Amy@onmicrosoftware.com"
}
},
{
"emailAddress": {
"name": "Amy",
"adress": "Amy@onmicrosoftware.com"
}
}
]
}
【问题讨论】:
-
嗨,如果我理解正确,您的过滤器可以正常工作,并且您无法将结果导出为 CSV,对吧?这对你有帮助吗(?):convert-json-to-csv-using-powershell - 如果你不能使用这篇文章中提到的解决方案,我会尝试创建第二个数组并通过创建一个新的 PSObject 来保存过滤后的 json 输入:
$obj = New-Object PSObject -
看看CsvCruncher,虽然它不支持通过嵌套数组。
标签: json powershell office365