2016-11-08 11 views
-1

Я пытаюсь прочитать массив JSON в Postgresql с указанным ниже содержимым JSON, но я не смог его достичь. Я могу читать объекты JSON, такие как «select data - >>« items »из событий». Пожалуйста, дайте мне знать, подход, при котором я могу читать массив, объекты внутри массивов & внутренних массивов и т.п.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) 

обмена блобы с названием колонки

+1

Просто, чтобы прокомментировать, что если вы просматриваете глубоко вложенный путь, то * path * operator '#>' и '# >>' даст лучшую производительность, например: 'SELECT $$ {" parent ": {" child1 ": { "child2": [1, {"key": "value"}, 3]}}} $$ :: jsonb #> '{parent, child1, child2, 1, key}'; '. Если вы делаете глубоко вложенный поиск, как в вашем примере, то после каждого оператора другой json «читается» как новый json до достижения конечного результата. –

 Смежные вопросы

  • Нет связанных вопросов^_^