Powershell ConvertFrom-Json получает доступ к значению json
У меня есть файл json, который я хотел бы преобразовать в csv. Однако фактическое значение вложено внутри
reading
ключ, к которому мне нужно получить доступ. Он возвращается
System.Object[]
в котором я знаю, что должен получить доступ к этому, но я не знаю, как.
следующее
result.json
файл,
{"totalNumberOfReadings":1488,
"readings":
[
{"meterNumber":"xxxxx","date":"2022-02-01 00:00","reading":0.0,"status":"AsRequested"},
{"meterNumber":"xxxxx","date":"2022-01-31 23:30","reading":0.0,"status":"As Requested"},
{"meterNumber":"xxxxx","date":"2022-01-31 23:00","reading":0.0,"status":"As Requested"},
{"meterNumber":"xxxxx","date":"2022-01-31 23:00","reading":0.0,"status":"As Requested"},
]
}
Мой скрипт такой
C:\> (Get-Content -Raw result.json | ConvertFrom-Json) | ConvertTo-Csv -NoTypeInformation
вывод это
"totalNumberOfReadings","readings"
"1488","System.Object[]"
Это просто сводка/метаданные. Я хочу фактическое содержимое внутри значения ключа, как получить доступ к значению?
1 ответ
Либо используйте доступ для участников:
(Get-Content -Raw result.json | ConvertFrom-Json).readings | ConvertTo-Csv -NoTypeInformation
...или только конвейерные команды:
Get-Content -Raw result.json | ConvertFrom-Json | ForEach-Object readings | ConvertTo-Csv -NoTypeInformation
ForEach-Object readings
это краткая
формаForEach-Object -MemberName readings
.