¿Cómo validar JSON en PHP?

En este artículo, veremos cómo validar strings JSON en PHP. 

JSON es una abreviatura de JavaScript Object Notation . Es un formato de intercambio de datos ampliamente utilizado para servicios en línea que los humanos entienden fácilmente. Para determinar si la salida JSON es genuina, PHP incluye un método llamado json_decode() , que se introdujo en PHP 5.3. 

Es una función incorporada de PHP que se usa para decodificar una string JSON. Crea una variable PHP a partir de un texto codificado en JSON.

Sintaxis: 

json_decode( $json, $assoc = FALSE, $depth = 512, $options = 0 )

Parámetros: Como se indicó anteriormente, esta función requiere cuatro parámetros:

  • json: es necesario. Contiene la string JSON que debe decodificarse.
  • asoc: Es opcional. Se especifica un valor booleano. Cuando esta propiedad se establece en «verdadero», el objeto devuelto se transforma en una array asociativa.
  • profundidad: Es opcional. Se especifica la profundidad de la recursividad.
  • opciones: es opcional e incluye la especificación de máscara de bits como (JSON_OBJECT_AS_ARRAY,JSON_BIGINT_AS_STRING,JSON_THROW_ON_ERROR).

Valores devueltos: este método devuelve el valor JSON codificado en el tipo de PHP adecuado. Devuelve NULL si el JSON no se puede decodificar si los datos codificados son más profundos que el límite de recurrencia.

Ejemplo 1: El siguiente código demuestra la validación de JSON en PHP usando los siguientes métodos.

  • Esta condición verifica si la variable $data está vacía. Si $data es nulo, devolverá falso.
if (!empty($data))
  • El método is_string() determina si una variable es de tipo string o no.
is_string($data)
  • json_decode ($data, true) devolverá un objeto convertido en una array asociativa, y luego la función is_array() verifica si el objeto es una array o no.
is_array(json_decode($data, true))

PHP

<?php
    function json_validator($data) {
        if (!empty($data)) {
            return is_string($data) && 
              is_array(json_decode($data, true)) ? true : false;
        }
        return false;
    }
  
    $data1 = '{"name":"vishal", "email": "abc@gmail.com"}';
    $data2 = '{name:vishal, email: abc@gmail.com}';
  
    echo "Result for data1: ";
    echo (json_validator($data1) ? "JSON is Valid\n" 
        : "JSON is Not Valid\n");
    echo "Result for data2: ";
    echo (json_validator($data2) ? "JSON is Valid" 
        : "JSON is Not Valid");
?>

Producción:

 

Ejemplo 2: si la string es legítima, json_decode la procesará y devolverá la variable PHP. Si la string no es válida, se generará el error. El error será suprimido por el carácter “@”.

@json_decode($data)

Esto determinará si $data es una string JSON válida comparándola con JSON_ERROR_NONE. json_last_error () devuelve el último error si hubo algún error cuando se invocó json_decode() .

return (json_last_error() === JSON_ERROR_NONE)

PHP

<?php
    function json_validator($data) {
        if (!empty($data)) {
            @json_decode($data);
            return (json_last_error() === JSON_ERROR_NONE);
        }
        return false;
    }
  
    $data1 = '{"name":"vishal", "email": "abc@gmail.com"}';
    $data2 = '{name:vishal, email: abc@gmail.com}';
  
    echo "Result for data1: ";
    echo (json_validator($data1) ? "JSON is Valid\n" 
        : "JSON is Not Valid\n");
    echo "Result for data2: ";
    echo (json_validator($data2) ? "JSON is Valid" 
        : "JSON is Not Valid");
?>

Producción:

 

Publicación traducida automáticamente

Artículo escrito por vishalkumar98765432 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *