小编ana*_*arD的帖子

从 json 转换为 int 不起作用?

我需要以某种方式从 json 转换为 int。我已经做了这个功能:

CREATE OR REPLACE FUNCTION json2int(p_json json)
  RETURNS integer AS
$BODY$DECLARE
  v_json json;
  --v_char character varying;
  v_int integer;
BEGIN
  SELECT p_json->'additionalData'->'id' INTO v_json;
  --SELECT CAST(v_json as character varying) INTO v_char;
  SELECT CAST(v_json as integer) INTO v_int;
  RETURN v_int;
END;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION json2int(json)
  OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

我尝试从 json 转换为 int,但没有用。然后我尝试从 json 转换为字符到 int,这也不起作用。所以我补充说:

CREATE CAST (json AS integer) WITH INOUT as implicit;
Run Code Online (Sandbox Code Playgroud)

现在当我运行我的函数时:

SELECT json2int('{"additionalData":{"id":"4","userType":"viewer"},"type":"wall"}');
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR:  invalid input syntax for integer: ""4"" …
Run Code Online (Sandbox Code Playgroud)

postgresql int json casting

1
推荐指数
1
解决办法
4366
查看次数

标签 统计

casting ×1

int ×1

json ×1

postgresql ×1