如何使用postgresql-simple检索JSON jsonb值?



我在postgresql数据库中有一列(jsonExample(,类型为jsonb

selectCALogs :: IO [(Int, Object)]
selectCALogs = do
con <- connection
query_ con "select "clusterId", "jsonExample" from cluster"

这会产生以下错误:

• No instance for (Database.PostgreSQL.Simple.FromField.FromField
(unordered-containers-0.2.10.0:Data.HashMap.Base.HashMap
Text Value))
arising from a use of ‘query_’
• In a stmt of a 'do' block:
query_ con "select "clusterId", "clusterCALogs" 
from cluster"
In the expression:
do con <- connection
query_ con "select "clusterId", "clusterCALogs"from cluster"
In an equation for ‘selectCALogs’:
selectCALogs
= do con <- connection
query_ con "select "clusterId", 
"clusterCALogs" from cluster"
|
80 |   query_ con "select "clusterId", "clusterCALogs" 
from cluster"
|   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

如何让它返回一个 JSON 对象 - 使用 aeson 或其他东西?

查看这里的FromField实例(http://hackage.haskell.org/package/postgresql-simple-0.6.2/docs/Database-PostgreSQL-Simple-FromField.html#t:FromField(,我意识到它应该是一个Value而不是Object

因此:

selectCALogs :: IO [(Int, Value)]
selectCALogs = do
con <- connection
query_ con "select "clusterId", "jsonExample" from cluster"

最新更新