\u0000
एक यूनिकोड कोड बिंदु है जो एक स्ट्रिंग में मान्य नहीं है। मुझे स्ट्रिंग को साफ करने के अलावा और कोई रास्ता नहीं दिख रहा है।
चूंकि json
एक विशिष्ट प्रारूप में सिर्फ एक स्ट्रिंग है, आप JSON संरचना के बारे में चिंता किए बिना मानक स्ट्रिंग फ़ंक्शंस का उपयोग कर सकते हैं। कोड बिंदु को हटाने के लिए एक-पंक्ति वाला सैनिटाइज़र होगा:
SELECT (regexp_replace(the_string::text, '\\u0000', '', 'g'))::json;
लेकिन आप अपनी पसंद का कोई भी वर्ण सम्मिलित कर सकते हैं, जो उपयोगी होगा यदि शून्य कोड बिंदु को किसी प्रकार के सीमांकक के रूप में उपयोग किया जाता है।
डेटाबेस में संग्रहीत क्या है और इसे उपयोगकर्ता को कैसे प्रस्तुत किया जाता है, के बीच सूक्ष्म अंतर पर भी ध्यान दें। आप कोड बिंदु को JSON स्ट्रिंग में संग्रहीत कर सकते हैं, लेकिन मान को json
के रूप में संसाधित करने से पहले आपको इसे किसी अन्य वर्ण में पूर्व-संसाधित करना होगा डेटा प्रकार।