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.

Другие вопросы по тегам