Допустим, у меня есть этот объект JSON и иерархия такого рода, сохраненные в каждой строке таблицы в некотором столбце.
{
"A": {
"const-key-name": "AAAAAA",
"B": {
"const-key-name": "BBBBBB"
},
"C": {
"const-key-name": "CCCCCCCC"
"D": {
"const-key-name": "DDDDDDD"
},
"E": {
"const-key-name": "EEEEEEE"
"F": {
"const-key-name": "FFFFFFF"
}
}
}
}
Для каждого ключа в моей иерархии JSON у меня есть известный в расширенном ключе ключ const-key-name
, а у каждого другого ключа, который может быть в нем, есть неизвестное имя (т.е. я не знаю, что C
будет иметь 2 ключи с именами D
и E
).
Учитывая путь в иерархии, я пытаюсь запросить его 'children const-key-name
, в основном используя функцию OPENJSON
SQL Server.
Например, если задан путь $.A.C
, возвращаемая таблица будет иметь 2 строки, каждая из которых содержит const-key-name
значение D
и E
.
На мой взгляд, запрос должен состоять из 2 частей:
- Получение ключей, расположенных в
$.A.C
- Выбор каждой клавиши и значение
const-key-name
при $.A.C.D/E
, который должен выглядеть примерно так:
key | value
D DDDDDDD
E EEEEEEE
У меня нет проблем с извлечением ключей, но запрос каждого значения const-key-name
в одну таблицу является проблемой для меня.
Я был бы рад услышать другие идеи, если вы считаете, что мой подход к этой проблеме неправильный.