\u0000
je jeden kód Unicode, který není platný v řetězci. Nevidím jiný způsob, než dezinfikovat řetězec.
Od json
je pouze řetězec ve specifickém formátu, můžete použít standardní funkce řetězce, aniž byste se museli starat o strukturu JSON. Jednořádkový dezinfekční prostředek k odstranění bodu kódu by byl:
SELECT (regexp_replace(the_string::text, '\\u0000', '', 'g'))::json;
Můžete ale také vložit libovolný znak, který se vám líbí, což by bylo užitečné, pokud je nulový bod kódu použit jako nějaká forma oddělovače.
Všimněte si také jemného rozdílu mezi tím, co je uloženo v databázi, a tím, jak je to prezentováno uživateli. Bod kódu můžete uložit do řetězce JSON, ale před zpracováním hodnoty jako json
jej musíte předem zpracovat na nějaký jiný znak. datový typ.