Выполните итерацию по объекту Json, чтобы получить данные уровня 3 в Powershell - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь перебрать нижеприведенный объект json для извлечения "x-visibility": "Public Выбранный вывод должен быть записан в новый файл json.

Я пытаюсь использовать ForEach-Objectна «путях», как мне перебрать «/ about» и т. д. и получить объект «x-visibility»?

{
  "swagger": "2.0",
  "info": {
    "title": "Ope sepc  API",
    "version": "20.8.0"
  },
  "basePath": "/qrs",
  "schemes": [
    "https"
  ],
  "paths": {
    "/about": {
      "get": {
        "operationId": "65d540ef-b3b9-4678-ae24-2d8abdc304cc",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/About"
            }
          }
        },
        "x-visibility": "Public",
        "x-stability": "Locked"
      }
    },
    "/about/api/default": {
      "get": {
        "operationId": "3d1a3502-a020-4a37-8da3-90b7e030792e",
        "parameters": [
          {
            "name": "listentries",
            "in": "query",
            "required": false,
            "default": true,
            "type": "boolean",
            "allowEmptyValue": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              }
            }
          }
        }
		]
    }
  }
}
        "x-visibility": "Private",
        "x-stability": "Locked"
      }
    },
    "/about/api/default/analyticconnection": {
      "get": {
        "operationId": "2b781738-afd0-37a9-4248-84ec8d6be58c",
        "parameters": [
          {
            "name": "listentries",
            "in": "query",
            "required": false,
            "default": true,
            "type": "boolean",
            "allowEmptyValue": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AnalyticConnection"
            }
          }
        },
        "x-visibility": "Public",
        "x-stability": "Locked"
      }
    },
    "/about/api/default/app": {
      "get": {
        "operationId": "f868fb6f-330f-60f8-0851-60eadf848788",
        "parameters": [
          {
            "name": "listentries",
            "in": "query",
            "required": false,
            "default": true,
            "type": "boolean",
            "allowEmptyValue": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/App"
            }
          }
        },
        "x-visibility": "Private",
        "x-sability": "Locked"
      }
    },
    "/about/api/default/app/content": {
      "get": {
        "operationId": "4d486f37-c652-85bb-c291-a7384cccdfad",
        "parameters": [
          {
            "name": "listentries",
            "in": "query",
            "required": false,
            "default": true,
            "type": "boolean",
            "allowEmptyValue": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AppContent"
            }
          }
        },
        "x-visibility": "Public",
        "x-stability": "Locked"
      }
    },

Я должен делать все это в powershell, и я не в мире сценариев powershell.Пожалуйста, помогите, если возможно

1 Ответ

0 голосов
/ 02 июня 2018

Пожалуйста, исправьте ваш JSON.Следующее должно делать то, что вы хотите:

 foreach ($p in $data.paths.psobject.properties.value) { $p.get }

PSObject.Properties выдаст вам список всех свойств объекта.

...