Leer archivos JSON en PowerShell

Aamir Khan 15 febrero 2024
  1. Use Get-Content para leer JSON como una cadena en PowerShell
  2. Use ConvertFrom-Json para leer JSON como un objeto personalizado en PowerShell
  3. Use Invoke-WebRequest para leer JSON desde la web en PowerShell
Leer archivos JSON en PowerShell

Este tutorial demuestra cómo leer archivos JSON en PowerShell.

Use Get-Content para leer JSON como una cadena en PowerShell

El comando Get-Content es un comando de PowerShell que lee el contenido de un elemento. Este comando toma un parámetro Ruta que especifica la ubicación del elemento; el contenido suele ser datos de texto.

La cadena con formato JSON también son datos de texto; este comando puede leer un archivo JSON y enviarlo como una cadena al shell.

El siguiente comando lee un archivo JSON como una cadena.

Get-Content "transactions.json"

Producción :

[
    {
        "Date": "19/5/2022",
        "ProductId": "0001",
        "ProductName": "Fizzy Drink",
        "Cost": "2.32",
        "Currency": "USD"
    },
    {
        "Date": "16/5/2022",
        "ProductId": "0002",
        "ProductName": "Dark Chocolate",
        "Cost": "6.52",
        "Currency": "USD"
    },
    {
        "Date": "10/5/2022",
        "ProductId": "0003",
        "ProductName": "Snacks",
        "Cost": "4.2",
        "Currency": "USD"
    }
]

Use ConvertFrom-Json para leer JSON como un objeto personalizado en PowerShell

El ConvertFrom-Json es un comando de PowerShell que convierte una cadena con formato JSON en un objeto personalizado de PowerShell o PSCustomObject. Este objeto incluye todas las propiedades correspondientes a los campos JSON.

El siguiente comando combina Get-Content con ConvertFrom-Json para leer un JSON como PSCustomObject.

Get-Content "transactions.json" | ConvertFrom-Json

Producción :

Date        : 19/5/2022
ProductId   : 0001
ProductName : Fizzy Drink
Cost        : 2.32
Currency    : USD

Date        : 16/5/2022
ProductId   : 0002
ProductName : Dark Chocolate
Cost        : 6.52
Currency    : USD

Date        : 10/5/2022
ProductId   : 0003
ProductName : Snacks
Cost        : 4.2
Currency    : USD

Use Invoke-WebRequest para leer JSON desde la web en PowerShell

JSON es un formato de intercambio de datos comúnmente utilizado en la web para comunicaciones entre clientes y servidores. Un cliente envía una solicitud HTTP/HTTPS a un servidor y, como resultado, el servidor devuelve los datos solicitados como JSON.

Ilustración de comunicación de servidor y cliente de PowerShell

El Invoke-WebRequest envía una solicitud HTTP a un URI específico. El servidor recibe la solicitud y responde con un JSON en consecuencia.

El siguiente comando envía una solicitud web a un servidor y analiza el JSON con ConvertFrom-Json.

Invoke-WebRequest -Uri https://my-json-server.typicode.com/typicode/demo/posts | ConvertFrom-Json

Producción :

id title
-- -----
 1 Post 1
 2 Post 2
 3 Post 3

Artículo relacionado - PowerShell JSON