2014-10-07 12 views
2

我在嘗試訪問JSON對象中的數據時遇到此錯誤,是否有人知道它是什麼原因造成的?無法從標量提取元素 - postgresql錯誤

這是查詢:

SELECT id, data FROM cities WHERE data->'location'->>'population' = '270816' 

這是JSON對象:

location": { 

"population": 270816, 
"type": "city" 

} 

任何幫助將是非常感激。謝謝

回答

0

我能夠得到這個SELECT工作Postgres 9.3.1。這是一個sqlfiddle,它說明了這一點。

這裏是DDLINSERT聲明我在sqlfiddle使用:

create table cities 
(
    id serial, 
    data json 
); 

insert into cities (data) VALUES 
       ('{ 
        "location": { 
            "population": 270816, 
            "type": "city" 
           } 
        }' 
       ); 

什麼版本的Postgres您使用的是?你如何插入JSON?什麼是您的cities表的DDL

它懷疑它可能是您插入JSON數據的方式的問題。嘗試插入它類似於我在sqlfiddle上面的方式,看看是否適合你。即作爲純粹的SQL字符串,但其中一個與有效的JSON裏面,成一列定義爲json

+0

嗨,謝謝你的幫助。我使用javascript和sequelize插入數據,數據來自具有許多城市對象的json文件。當我檢查數據庫中的數據時,結構與上面顯示的結構相同。 – 2014-10-08 09:52:50

+0

當然,沒問題。什麼版本的* Postgres *?如果使用* psql *並將數據完全按照上面的方式插入到完全按照相同方式定義的表中,會發生什麼情況?那樣有用嗎? (我期望它,因爲它在* sqlfiddle *中工作)。 – khampson 2014-10-09 00:05:52

+0

嗨,我使用的是版本9.3,當我插入數據時,它的工作方式,但我已經知道它會工作,因爲我以前曾嘗試過,我認爲這是與從json文件導入數據到sequelize數據庫,那麼就會出現這個問題 – 2014-10-09 08:51:14