Bagaimana cara memvalidasi JSON di PHP?

0
(0)

Pada artikel ini, kita akan melihat bagaimana memvalidasi string JSON di PHP.

JSON adalah singkatan dari Notasi Objek JavaScript. Ini adalah format pertukaran data yang banyak digunakan untuk layanan online yang mudah dipahami oleh manusia. Untuk menentukan apakah keluaran JSON asli, PHP menyertakan metode yang disebut json_decode()yang diperkenalkan di PHP 5.3.

Ini adalah fungsi bawaan PHP yang digunakan untuk mendekode string JSON. Itu membuat variabel PHP dari teks yang disandikan JSON.

Sintaksis:

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

Parameter: Seperti yang dinyatakan sebelumnya, fungsi ini membutuhkan empat parameter:

  • json: Itu diperlukan. Ini berisi string JSON yang harus didekodekan.
  • asosiasi: Itu opsional. Nilai boolean ditentukan. Saat properti ini disetel ke “true”, objek yang dikembalikan diubah menjadi array asosiatif.
  • kedalaman: Itu opsional. Kedalaman rekursi ditentukan.
  • pilihan: Ini opsional yang menyertakan spesifikasi bitmask sebagai (JSON_OBJECT_AS_ARRAY,JSON_BIGINT_AS_STRING,JSON_THROW_ON_ERROR).

Nilai pengembalian: Nilai JSON yang disandikan dikembalikan dalam tipe PHP yang tepat dengan metode ini. Ini mengembalikan NULL jika JSON tidak dapat didekodekan jika data yang disandikan lebih dalam dari batas rekursi.

Contoh 1: Kode berikut menunjukkan validasi JSON di PHP dengan menggunakan metode berikut.

  • Kondisi ini memeriksa apakah variabel $data kosong. Jika $data null, itu akan mengembalikan false.
if (!empty($data))
  • Itu is_string() metode menentukan apakah suatu variabel bertipe string atau tidak.
is_string($data)
  • json_decode($data, true) akan mengembalikan objek yang diubah menjadi array asosiatif, dan kemudian is_array() fungsi memeriksa apakah objek adalah array atau tidak.
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 Validn"

        : "JSON is Not Validn");

    echo "Result for data2: ";

    echo (json_validator($data2) ? "JSON is Valid"

        : "JSON is Not Valid");

?>

Keluaran:

Contoh 2: Jika string itu sah, json_decode akan memprosesnya dan mengembalikan variabel PHP. Jika string tidak valid, kesalahan akan dihasilkan. Kesalahan akan ditekan oleh karakter “@”.

@json_decode($data)

Ini akan menentukan apakah $data adalah string JSON yang valid dengan membandingkannya dengan JSON_ERROR_NONE. Itu json_last_error() mengembalikan kesalahan terakhir jika ada kesalahan kapan json_decode() dipanggil.

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 Validn"

        : "JSON is Not Validn");

    echo "Result for data2: ";

    echo (json_validator($data2) ? "JSON is Valid"

        : "JSON is Not Valid");

?>

Keluaran:

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.