Я просто хочу получить данные json и использовать их поля в качестве столбца таблицы для других запросов.
Я пытаюсь преобразовать значение в ключе "nameProperty" в столбец таблицы,и значение ключей "newValue" заполняет строки этого столбца.
Например:
я получаю файл json, подобный этому
{
"operation":{
"ID":"ABC",
"KinshipDescription":"--"
},
"fields":[
{
"property":{
"nameProperty":"ID",
"oldValue":"",
"newValue":"123456",
"confirmed":"false",
"labelProperty":"ID",
"oldValueDescription":"",
"newValueDescription":"123456"
}
},
{
"property":{
"nameProperty":"Name",
"oldValue":"",
"newValue":"John",
"confirmed":"false",
"labelProperty":"Name",
"oldValueDescription":"",
"newValueDescription":"John"
}
}
]
}
Я хочуизвлекать объекты из списка «полей», но я могу только сделать их строкой для ключа, а другую строку для значений, как в приведенном ниже сценарии.
DECLARE @jsonObj NVARCHAR(MAX)
--Set a result in
SET @jsonObj = (select JSON_Query(data, '$.fields') from table where id = 'ABC')
select * from openjson(@jsonObj)
with (Property nvarchar(255) '$.property.nameProperty',
newValue nvarchar(50) '$.property.newValue')
, и я понятия не имею, как я могу сделатьэто
результаты этого сценария выглядят примерно так
ID 123456
Name John
и результаты, которые я хочу увидеть, это
ID Name --column name, not a row
123456 John