postgres 9.4和json中的unicode

时间:2015-03-30 03:41:21

标签: json postgresql unicode

我最终将一些json数据导入数据库,其中包含json密钥中的unicode转义。我似乎无法找到解决数据的方法。最简单的例子是:

选择' {" test \ u0007":123}' :: json->' test \ u0007'

而不是让123回来,我得到NULL。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

运算符需要jsontext个操作数。在text中,根据SQL规范,反斜杠转义没有意义。

如果要匹配该密钥,您需要在字符串中直接插入未转义的文本,或使用PostgreSQL扩展名E''字符串,例如:

regress=> select '{"test\u0007":123}'::json ->> E'test\u0007';
 ?column? 
----------
 123
(1 row)

json解码形式进行比较,这就是为什么原作无效。