상세 컨텐츠

본문 제목

[PostgreSQL] 테이블 데이터 json으로 변환하기

Framework/DBMS

by yooputer 2024. 3. 14. 18:06

본문

아래와 같이 유저 정보를 저장하는 user_info 테이블이 있다.


나는 유저 정보를 json으로 받고싶다!! 

그렇다면 to_json 함수를 사용하면 된다.

SELECT user_id,
  (SELECT to_json(ui_json)
   FROM
     (SELECT user_nm,
             age,
             email,
             phone_num,
             address,
             to_char(reg_date, 'yyyy-MM-dd') AS reg_date
      FROM user_info ui2
      WHERE ui.user_id = ui2.user_id) ui_json) AS user_info_json
FROM user_info ui

 

결과


나는 이 유저 정보를 한 리스트에 몽땅 때려넣고 싶다!! 

그렇다면 json_agg 함수를 사용하면 된다.

SELECT json_agg(to_json(ui_json))
FROM
  (SELECT user_id
          user_nm,
          age,
          email,
          phone_num,
          address,
          to_char(reg_date, 'yyyy-MM-dd') AS reg_date
   FROM user_info ui2) ui_json

 

결과

[{"user_id":"hong1","user_nm":"홍길동","age":"30","email":"hong1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"}, {"user_id":"lee","user_nm":"이민기","age":"34","email":"lee1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"}, {"user_id":"cho1","user_nm":"조나연","age":"27","email":"cho1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"}, {"user_id":"kim2","user_nm":"김자반","age":"45","email":"kim2@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"}, {"user_id":"kim1","user_nm":"김유진","age":"25","email":"kim1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"}]

나는 유저 아이디를 key로 유저 정보 json을 value로 받고싶다!!

그렇다면 json_object_agg를 쓰면 된다!

SELECT json_object_agg(user_id, to_json(ui_json))
FROM
  (SELECT user_id,
          user_nm,
          age,
          email,
          phone_num,
          address,
          to_char(reg_date, 'yyyy-MM-dd') AS reg_date
   FROM user_info ui2) ui_json

 

결과


{ "hong1" : {"user_id":"hong1","user_nm":"홍길동","age":"30","email":"hong1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"},
"lee" : {"user_id":"lee","user_nm":"이민기","age":"34","email":"lee1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"},
"cho1" : {"user_id":"cho1","user_nm":"조나연","age":"27","email":"cho1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"},
"kim2" : {"user_id":"kim2","user_nm":"김자반","age":"45","email":"kim2@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"},
"kim1" : {"user_id":"kim1","user_nm":"김유진","age":"25","email":"kim1@test.com","phone_num":"010-1111-2222","address":"주소","reg_date":"2024-03-14"} }

 

'Framework > DBMS' 카테고리의 다른 글

[PostgreSQL] PSQL 명령어  (0) 2025.03.17

관련글 더보기