0
我需要以某種方式從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;
我試着從json轉換爲int,這沒有奏效。然後我試着從json投射到int變化的字符,那也沒用。於是我說:
CREATE CAST (json AS integer) WITH INOUT as implicit;
,現在當我跑我的功能:
SELECT json2int('{"additionalData":{"id":"4","userType":"viewer"},"type":"wall"}');
我得到這個錯誤:
ERROR: invalid input syntax for integer: ""4""
CONTEXT: SQL statement "SELECT CAST(v_json as integer)"
PL/pgSQL function json2int(json) line 8 at SQL statement
有人可以有幫助呢?
有2個功能從JSON獲得價值:' - >'和' - >>'。一個返回JSON,另一個返回文本。你需要那個返回文本的文件。 – 2014-09-12 14:15:24
詳情在這裏:http://www.postgresql.org/docs/current/static/functions-json.html – 2014-09-12 14:16:31