Разбор JSON с помощью Powershell ConvertFrom-Json - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь проанализировать этот JSON с помощью функции Powershell ConvertFrom-Json, но кажется, что данные усекаются:

{
  "MessagesMonitoring": {
    "version": 1,
    "description": "Message Description"
  },
  "data": {
    "swindon": {
      "totalMessages": 0,
      "identifier": [
        {
          "name": "ET",
          "staleCount": 4
        },
        {
          "name": "ET_2",
          "staleCount": 4
        }
      ]
    },
    "Reading": {
      "totalMessages": 0,
      "identifier": [
        {
          "name": "J3",
          "staleCount": 2
        }
      ]
    },
    "Yanki": {
      "totalMessages": 0,
      "identifier": [
        {
          "name": "UT",
          "staleCount": 4
        },
        {
          "name": "UT_2",
          "staleCount": 4
        }
      ]
    }
  }
}

Запрос:

 $request = 'http://localhost:8000/hi.json'
 Invoke-WebRequest $request |
 ConvertFrom-Json |
 Select swindon

Ответ:

StatusCode        : 200                                                         StatusDescription : OK
Content           : {
                      "MessagesMonitoring": {
                        "version": 1,
                        "description": "Message Description"
                      },
                      "data": {
                        "swindon": {
                          "totalMessages": 0,
                          "identifier": [
                            {
                              "na...

Не уверен, что я могу делать неправильно. Любой совет / руководство о том, как разобрать JSON в этот формат, было бы замечательно.

swindon|identifier|ET|4
swindon|totalMessages|0
swindon|identifier|ET2|4

Reading|identifier|J3|2
Reading|totalMessages|0

Yanki|identifier|UT|4
Yanki|identifier|U_T|4
Yanki|totalMessages|0

1 Ответ

0 голосов
/ 15 мая 2018

Вы пропустили шаг.Элемент Content ответа содержит JSON, поэтому вам нужно ввести его в ConvertFrom-Json:

$request = 'http://localhost:8000/hi.json'
$resp = $(Invoke-WebRequest $request).Content | ConvertFrom-Json

Затем в JSON есть словарь, внутри которого клавиша "data"содержит информацию, которая, как мне кажется, вас интересует, доступна с использованием следующего синтаксиса:

$resp.data

Это должно помочь вам начать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...