json 中的 postgres 9.4 和 unicode
postgres 9.4 and unicode in json
我最终将一些 json 数据导入数据库,其中在 json 键中包含 unicode 转义。而且我似乎找不到解决数据的方法。最简单的例子是:
select '{"test\u0007":123}'::json->'test\u0007'
我得到的不是 123,而是 NULL。有人可以帮忙吗?
运算符接受 json
和 text
操作数。在 text
中,根据 SQL 规范,反斜杠转义没有意义。
如果你想匹配那个键,你需要在字符串中逐字插入未转义的文本,或者使用 PostgreSQL 扩展,E''
字符串,例如:
regress=> select '{"test\u0007":123}'::json ->> E'test\u0007';
?column?
----------
123
(1 row)
json
以其 解码的 形式进行比较,这就是原件不起作用的原因。
我最终将一些 json 数据导入数据库,其中在 json 键中包含 unicode 转义。而且我似乎找不到解决数据的方法。最简单的例子是:
select '{"test\u0007":123}'::json->'test\u0007'
我得到的不是 123,而是 NULL。有人可以帮忙吗?
运算符接受 json
和 text
操作数。在 text
中,根据 SQL 规范,反斜杠转义没有意义。
如果你想匹配那个键,你需要在字符串中逐字插入未转义的文本,或者使用 PostgreSQL 扩展,E''
字符串,例如:
regress=> select '{"test\u0007":123}'::json ->> E'test\u0007';
?column?
----------
123
(1 row)
json
以其 解码的 形式进行比较,这就是原件不起作用的原因。