У меня есть хранимая процедура tsql, которая генерирует файл json базы данных, с которой я работаю. Определенная часть файла json представляет собой массив свойств с именем, значением и переменной требования. Эта часть файла JSON выглядит следующим образом:
"Properties": [
{
"PropertyName": "Foo"
"PropertyValue": "Bar"
"Required": "True"
},
{
"PropertyName": "Foo2"
"PropertyValue": "Bar2"
"Required": "False"
}
]
Это генерируется как подзапрос более крупного запроса SQL, который создает весь документ JSON:
SELECT,...,
(SELECT P.Name as PropertyName, P.Value as PropertyValue, P.Requirement as Required
FROM Properties P FOR JSON PATH) as Properties
FROM Foo
FOR JSON PATH
Я хочу, чтобы файл JSON был размечен, поэтому значение PropertyName является ключом для двух других значений:
"Properties" [
{"Foo": {{"PropertyValue": "Bar"},{"Required": "True"}},
etc.
]
В идеале код может выглядеть примерно так:
(Select P.Value as [[P.Name].PropertyValue], P.Requirement as [[P.Name].Required]
FROM Properties P
FOR JSON PATH)
Но, очевидно, это не является юридическим выражением. Есть ли способ сделать это в рамках SQL или мне следует изменить файл после его создания?