Test-Json

Comprueba si una cadena es un documento JSON válido

Sintaxis

Default (valor predeterminado)

Test-Json
    [-Json] <string>
    [[-Schema] <string>]
    [<CommonParameters>]

Description

El cmdlet Test-Json comprueba si una cadena es un documento válido de notación de objetos JavaScript (JSON) y puede comprobar opcionalmente ese documento JSON en un esquema proporcionado.

A continuación, la cadena comprobada se puede usar con el cmdlet ConvertFrom-Json convertir una cadena con formato JSON en un objeto JSON, que se administra fácilmente en PowerShell o se envía a otro programa o servicio web que accede a la entrada JSON.

Muchos sitios web usan JSON en lugar de XML para serializar datos para la comunicación entre servidores y aplicaciones basadas en web.

Este cmdlet se introdujo en PowerShell 6.1

Ejemplos

Ejemplo 1: Prueba si un objeto es json válido

En este ejemplo se comprueba si la cadena de entrada es un documento JSON válido.

"{'name': 'Ashley', 'age': 25}" | Test-Json
True

Ejemplo 2: Prueba de un objeto con un esquema proporcionado

En este ejemplo se toma una cadena que contiene un esquema JSON y se compara con una cadena de entrada.

$schema = @'
{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "name",
    "age"
  ],
  "properties": {
    "name": {
      "$id": "#/properties/name",
      "type": "string",
      "title": "The Name Schema",
      "default": "",
      "examples": [
        "Ashley"
      ],
      "pattern": "^(.*)$"
    },
    "age": {
      "$id": "#/properties/age",
      "type": "integer",
      "title": "The Age Schema",
      "default": 0,
      "examples": [
        25
      ]
    }
  }
}
'@
"{'name': 'Ashley', 'age': '25'}" | Test-Json -Schema $schema
Test-Json : IntegerExpected: #/age
At line:1 char:37
+ "{'name': 'Ashley', 'age': '25'}" | Test-Json -Schema $schema
+                                     ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (:) [Test-Json], Exception
+ FullyQualifiedErrorId : InvalidJsonAgainstSchema,Microsoft.PowerShell.Commands.TestJsonCommand
False

En este ejemplo, se produce un error porque el esquema espera un entero para antigüedad, pero la entrada JSON que probamos usa un valor de cadena en su lugar.

Para obtener más información, consulte esquema JSON.

Parámetros

-Json

Especifica la cadena JSON que se va a probar para la validez. Escriba una variable que contenga la cadena o escriba un comando o expresión que obtenga la cadena. También puede canalizar una cadena a Test-Json.

Se requiere el parámetro json.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:1
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Schema

Especifica un esquema para validar la entrada JSON. Si se pasa Test-Json , validará que la entrada Json se ajusta a la especificación especificada por el parámetro Schema y se devolverá $True solo si la entrada se ajusta al esquema proporcionado.

Para obtener más información, consulte esquema JSON.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:2
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

String

Puede redirigir una cadena JSON a Test-Json.

Salidas

Boolean

Notas

El Test-Json cmdlet se implementa mediante la clase NJsonSchema.