如何将postgres json转换为整数

时间:2013-11-27 07:35:52

标签: json postgresql

我可以使用to_json(1)将int转换为json,但是如何将json转换为int?这可能太慢了:

to_json(1)::text::int

另外,json是从二进制块(bson)还是简单的文本包装器中包装的?

3 个答案:

答案 0 :(得分:19)

对我有用(使用posgtgresql 5.6)是

SELECT (tablename.jsoncolumnname->>'jsonfiledname')::int FROM tablename;

SELECT (users.data->>'failed_login_attempts_count')::int FROM users;

假设users表有一个名为data的json列,它类似于:

{"failed_login_attempts_count":"2","comment":"VIP"}

答案 1 :(得分:9)

  

to_json(1):: text :: int可能太慢了

但是,这是唯一的方法。

你问题的第二部分不清楚。

答案 2 :(得分:6)

PostgreSQL 9.3 JSON支持只是经过验证的json文本。

在9.4及更新版本中,您可以使用jsonb。

“可能太慢”并没有多大意义。是什么让你觉得它太慢了?你测试和基准吗?如果它“太慢”,那么的速度会太慢,即你期望什么?