1
當我嘗試格式化()一個PostgreSQL布爾值,數值轉換爲jsonb對象布爾值的PostgreSQL的格式化功能和PostgreSQL拋出一個異常:轉換爲jsonb
# select format('%s', true)::jsonb;
ERROR: invalid input syntax for type json
DETAIL: Token "t" is invalid.
CONTEXT: JSON data, line 1: t
我相當肯定,格式化一個布爾值給出t或f而不是完整的單詞,這是json期望的。
目前已經是一個解決方案,通過使用case語句
select format('%s', case when true then 'true' else 'false' end)::jsonb;
format
--------
true
(1 row)
然而,儘管這可能會爲微不足道的情況下,顯得精緻以上,當它在功能和任何事情都有使用更復雜,它看起來相當出地點。有沒有更好的解決方案?
上下文是我有一個函數返回鍵映射到布爾標誌的散列,這是由函數決定的。什麼一個功能,可以看起來像一個樣品是
return format('{
"is_valid" : %s,
"is_authorized" : %s,
"is_not_delegated" : %s,
}',
is_valid(function_argument),
is_authorized(function_argument),
not is_delegated(function_argument)
)::jsonb;
請考慮增加一些細節,你的答案。 –