我最终将一些json数据导入数据库,其中包含json密钥中的unicode转义。我似乎无法找到解决数据的方法。最简单的例子是:
选择' {" test \ u0007":123}' :: json->' test \ u0007'
而不是让123回来,我得到NULL。有人可以帮忙吗?
答案 0 :(得分:0)
运算符需要json
和text
个操作数。在text
中,根据SQL规范,反斜杠转义没有意义。
如果要匹配该密钥,您需要在字符串中直接插入未转义的文本,或使用PostgreSQL扩展名E''
字符串,例如:
regress=> select '{"test\u0007":123}'::json ->> E'test\u0007';
?column?
----------
123
(1 row)
json
以解码形式进行比较,这就是为什么原作无效。