1
我試圖將exiftool
生成的JSON通過psql
插入postgresql,這似乎有效。看起來不知何故,逃脫的單引號和逃脫的雙引號不能正常工作。我無法弄清楚如何正確地逃避json。看來,在psql不處理單引號逃逸正確作爲其啓動的\」走出去psql的,而不是查詢psql在字符串內插入帶雙引號的json
對於這個表
create table test (exif jsonb);
這些工作:
test=> insert into test values ('{"a": 1, "b": "2"}');
INSERT 0 1
test=> insert into test values ('{"a": 1, "b": "2\""}');
INSERT 0 1
test=> select * from test;
exif
----------------------
{"a": 1, "b": "2"}
{"a": 1, "b": "2\""}
但這些並不
test=> insert into test values ('{"a": 1, "b": "1\' 2\""}');
Invalid command \""}');. Try \? for help.
test=> select '{"a": 1, "b": "1' 2\""}';
Invalid command \""}';. Try \? for help.
test=> select E'{"a": 1, "b": "1' 2\""}';
Invalid command \""}';. Try \? for help.
test=> select '{"a": 1, "b": "1\' 2\""}';
Invalid command \""}';. Try \? for help.
有什麼建議?
雙引號源被轉義,json規範說他們應該逃脫。 – ruckc
感謝@ruckc的跟進 –