PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa memverifikasi di Postgresql bahwa JSON valid?

Ini adalah contoh bagus lainnya mengapa memilih tipe data yang sesuai sejak awal membantu nanti;)

Tidak ada fungsi bawaan untuk memeriksa apakah teks yang diberikan adalah JSON yang valid. Namun Anda dapat menulis sendiri:

create or replace function is_valid_json(p_json text)
  returns boolean
as
$$
begin
  return (p_json::json is not null);
exception 
  when others then
     return false;  
end;
$$
language plpgsql
immutable;

Perhatian:karena penanganan pengecualian ini tidak akan cepat. Jika Anda menyebutnya demikian pada banyak nilai yang tidak valid, ini akan memperlambat pilihan Anda secara besar-besaran.

Namun keduanya '{"products": 1}' dan '{"products": [1,2,3]}' adalah dokumen JSON yang valid. Fakta bahwa yang pertama tidak valid didasarkan pada logika aplikasi Anda, bukan pada sintaks JSON.

Untuk memverifikasi bahwa Anda memerlukan fungsi serupa, yang menjebak kesalahan saat memanggil json_array_length()

create or replace function is_valid_json_array(p_json text, p_element text)
  returns boolean
as
$$
begin
  return json_array_length( p_json::json -> p_element) >= 0;
exception 
  when others then
     return false;  
end;
$$
language plpgsql
immutable;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migrasi dari Postgres ke SQL Server 2008

  2. PostgreSQL - Tetapkan nilai untuk setiap baris berdasarkan kriteria

  3. SQL SELECT kecepatan int vs varchar

  4. Lebih Banyak Kueri PostgreSQL Favorit Saya - dan Mengapa Mereka Juga Penting

  5. PostgreSQL \lo_import dan bagaimana cara mendapatkan OID yang dihasilkan menjadi perintah UPDATE?