pgsql中json格式陣列查詢結果變成了字串

2022-06-21 02:30:13 字數 899 閱讀 8189

最近使用到了json的陣列,用來儲存多個檔案的值,發現在連表查詢的時候返回結果變成了字串。

"打豆豆.io",

我們發現attaches被轉換成了字串,但是我attaches欄位明明定義的是json型別的,但是返回 結果變成了字串。

我們來看下資料庫的字段

add column "

attaches

" text not null default '

'::jsonb;

可以看到用的是json型別
還有就是在查詢的時候使用了to_json

這是to_json的函式的文件描述

把值返回為json或者jsonb。陣列和組合被(遞迴地)轉換成陣列和物件;否則, 如果有從該型別到json的投影,將使用該投影函式來執行轉換; 否則將產生乙個標量值。對任何乙個數值、布林量或空值的標量型別, 將使用其文字表達,以這樣一種方式使其成為有效的json或者jsonb值。~~~~

所以這是正常的情況,但是我們需要的是以陣列的形式輸出。這是發現 attaches欄位用的是text欄位,也就是文字字段,他可能就是導致問題出現的原因, 於是更改了字段的型別為jsonb,發現解決了,attaches的輸出已經正常了。

當然這種操作還有乙個改進的辦法,就是使用陣列,而不是json陣列,這樣也不會出現這些問題了。

add column "

attachess

" text default '

{}'::text;

拆分json格式陣列

把轉換成 declare my cursor cursor 定義游標 for select key from airportdemo 把資料集匯入游標 open my cursor 開啟游標 fetch next from my cursor into key 把游標中第一條放到變數key中 whi...

iOS 中json中字典 轉json格式字串

這是我從plist檔案中找到的乙個字典,把裡面的字典轉成了json資料,多注意字串的拼接,雖然不難,容易犯錯誤。nsarray flags nsmutablestring jsonstring nsmutablestring stringwithformat mutstr jsonstring in...

mysql操作 json 陣列 的增刪該查

前言,型別必須是json,雖然text也可以,但是很多操作沒法使用,比如查詢,當然了,這種型別還可以儲存陣列 類似 varchar,設定 json 主要將字段的 type 是 json,不能設定長度,可以是 null 但不能有預設值。就是插入 json 格式的字串,可以是物件的形式,也可以是陣列的形...