2016-11-08 40 views
-1

我想在Postgresql中用下面提到的JSON內容讀取JSON數組,但我無法實現它。我能夠讀取JSON對象,如「從事件中選擇數據 - >>'項'。請讓我知道的方法,我可以讀一個數組,對象數組裏面內&陣列等Postgresql - JSON數組運算符

JSON內容:

{"apiVersion":"2.0", 
"data":{ 
    "updated":"2010-01-07T19:58:42.949Z", 
    "totalItems":800, 
    "startIndex":1, 
    "itemsPerPage":1, 
    "items":[ 
     {"id":"hYB0mn5zh2c", 
     "uploaded":"2007-06-05T22:07:03.000Z", 
     "updated":"2010-01-07T13:26:50.000Z", 
     "uploader":"GoogleDeveloperDay", 
     "category":"News", 
     "title":"Google Developers Day US - Maps API Introduction", 
     "description":"Google Maps API Introduction ...", 
     "tags":[ 
      "GDD07","GDD07US","Maps" 
     ], 
     "thumbnail":{ 
      "default":"http://i.ytimg.com/vi/hYB0mn5zh2c/default.jpg", 
      "hqDefault":"http://i.ytimg.com/vi/hYB0mn5zh2c/hqdefault.jpg" 
     }, 
     "player":{ 
      "default":"http://www.youtube.com/watch?vu003dhYB0mn5zh2c" 
     }, 
     "content":{ 
      "1":"rtsp://v5.cache3.c.youtube.com/CiILENy.../0/0/0/video.3gp", 
      "5":"http://www.youtube.com/v/hYB0mn5zh2c?f...", 
      "6":"rtsp://v1.cache1.c.youtube.com/CiILENy.../0/0/0/video.3gp" 
     }, 
     "duration":2840, 
     "aspectRatio":"widescreen", 
     "rating":4.63, 
     "ratingCount":68, 
     "viewCount":220101, 
     "favoriteCount":201, 
     "commentCount":22, 
     "status":{ 
      "value":"restricted", 
      "reason":"limitedSyndication" 
     }, 
     "accessControl":{ 
      "syndicate":"allowed", 
      "commentVote":"allowed", 
      "rate":"allowed", 
      "list":"allowed", 
      "comment":"allowed", 
      "embed":"allowed", 
      "videoRespond":"moderated" 
     } 
     } 
    ] 
} 
} 
+1

Postgres文檔充滿您描述的情況的示例https://www.postgresql.org/docs /current/static/functions-json.html。這不夠,或者不清楚文檔中的內容嗎? –

回答

0

只是用一個箭頭

# select blob->'data'->'items'->0->'title' from so_test; 
        ?column? 
---------------------------------------------------- 
"Google Developers Day US - Maps API Introduction" 
(1 row) 

交換BLOB與列名

+1

只是要評論一下,如果你正在深入嵌套路徑,那麼* path *運算符'#>'和'#>>'會得到更好的性能,例如:'SELECT $$ {「parent」:{「child1」:{ 「child2」:[1,{「key」:「value」},3]}}} $$ :: jsonb#>'{parent,child1,child2,1,key}';'。如果你在你的例子中進行了深度嵌套查找,那麼在每個運算符之後,另一個json被「讀」爲新的json直到最終結果。 –