2016-11-08 4 views
-1

아래에서 언급 한 JSON 콘텐츠로 Postgresql에서 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) 

교환 방울 화살표 사용 열 이름이

+1

깊게 중첩 된 경로를 살펴보면 * 경로 * 연산자'#>'와'# >>'는 다음과 같이 더 나은 성능을 제공 할 것이라고 언급합니다 : SELECT $$ { "parent": { "child1": { "parent2": [1, { "key": "value"}, 3]}}} $$ :: jsonb #> '{parent, child1, child2, 1, key}'; 귀하의 예제에서와 같이 중첩 된 조회를 수행하면 각 연산자 다음에 다른 json은 최종 결과가 달성 될 때까지 새로운 json으로 "읽습니다". –