Postgresql
pgadmin:無法插入 jsonb帶字元串的值
我有
jsonb[]
列,它允許我插入一些嵌套數組,但只能使用像{{1,2,3}, {4,5,6}, {7,8,9}}
. 我不是在談論插入一些嵌套對象,例如{{"one": "two"}, {"three": "four"}}
.如何甚至插入嵌套的字元串值,例如:
{ {"one", "two", "three"}, {"four", "five", "six"}, {"seven", "eight", "nine"} }
錯誤:無效語法…,標記“一”無效
答案是:在pgadmin中,您必須在鍵/值定義之前和之後轉義每個引號。多麼複雜的解決方案。
{ "{\"one\": \"two\"}", "{\"three\": \"foure\"}", "{\"fivep\": \"six\"}" }
看來你的 json 數據格式無效,你可以先用一些 IDE/線上工具比如jsonlint.com來檢查一下:
錯誤:第 1 行解析錯誤:{ { “one”, “two”, –^ Expecting ‘STRING’, ‘}’, got ‘{’
甚至 {{1,2,3}, {4,5,6}, {7,8,9}} 的 json 格式也無效。
它應該使用以下數據執行:
{ "a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9] }
或者 :
[1, 2, 3, 4, 5, 6, 7, 8, 9]
還有這個 :
{ "a": ["one", "two", "three"], "b": ["four", "five", "six"], "c": ["seven", "eight", "nine"] }
或者
["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]