Извлечение данных из поля JSON в Redshift - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь извлечь некоторые данные из поля JSON.

[{"id": 10001, "person1": {"name": "Kevin", "role": "junior"},
               "person2": {"name": "Scott", "role": "senior"}}] 

Я пытаюсь извлечь имя и роль под каждым идентификатором.

Я попробовал следующее, но он вернул пустую запись.

SELECT json_extract_path(column_name::json,'person1','name') FROM table

1 Ответ

1 голос
/ 04 апреля 2019

JSON, который вы показали:

  • Список (обозначенный [])
  • Содержит словарь
  • Содержит словарь

Сначала вам нужно будет извлечь первый элемент списка, а затем использовать предоставленную вами команду.

Попробуйте что-то вроде:

SELECT 
  json_extract_path(
    json_extract_array_element_text(column_name::json, 0),
    'person1',
    'name'
  ) 
FROM table
...