PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं Postgresql में कैसे सत्यापित कर सकता हूं कि JSON मान्य है?

यह एक और अच्छा उदाहरण है कि क्यों शुरू से ही सही डेटा प्रकार चुनने से बाद में मदद मिलती है;)

यह जांचने के लिए कोई अंतर्निहित फ़ंक्शन नहीं है कि दिया गया टेक्स्ट वैध JSON है या नहीं। हालांकि आप अपना खुद का लिख ​​सकते हैं:

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;

सावधानी:अपवाद को संभालने के कारण यह तेज़ नहीं होने वाला है। यदि आप इसे कई अमान्य मानों पर कॉल करते हैं तो यह आपके चयन को व्यापक रूप से धीमा कर देगा।

हालांकि दोनों '{"products": 1}' और '{"products": [1,2,3]}' वैध JSON दस्तावेज़ हैं। तथ्य यह है कि पूर्व अमान्य है, आपके आवेदन तर्क पर आधारित है, JSON सिंटैक्स पर नहीं।

यह सत्यापित करने के लिए कि आपको एक समान फ़ंक्शन की आवश्यकता होगी, जो 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. Django विशिष्ट काम नहीं कर रहा

  2. sqlalchemy-migrate का उपयोग करके कॉलम प्रकार को वर्ण से पूर्णांक में कैसे बदलें?

  3. ऑर्डर_बी कई-से-अनेक फ़ील्ड पर क्वेरीसेट में डुप्लिकेट प्रविष्टियाँ उत्पन्न करता है

  4. पोस्टग्रेज में कितने स्कीमा बनाए जा सकते हैं

  5. Postgresql के लिए कार्य