2016-11-08 119 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直到最终结果。 –