У нас есть SQL-запрос, в котором мы создаем файл JSON для JSON Path.
Мы хотим объединить 2 объекта JSON в 1 файл JSON. Но мы боремся с кодом, как выполнить эту задачу.
Мы попытались JSON_MODIFY объединить их, используя append. Но у нас это не сработало.
Мы хотели бы сделать следующее: у нас есть 2 отдельных объекта json, и мы хотим объединить их в один.
Json Объект A:
{
"ID" : 0,
"Name" : "a name",
"Description" : "a description"
}
и Json Object B
"Nodes" : [
{
"NodeID" : 10,
"NodeName" : "Node 0"
},
{
"NodeID" : 11,
"NodeName" : "Node 1"
}
]
Что мы хотим иметь:
{
"ID" : 0,
"Name" : "a name",
"Description" : "a description",
"Nodes" : [
{
"NodeID" : 10,
"NodeName" : "Node 0"
},
{
"NodeID" : 11,
"NodeName" : "Node 1"
}
]
}
Наш текущий SQL-запрос выглядит так:
set @JsonCourse = ( select c.name, c.id, c.description from dbo.courses c where c.id = @id for json path)
set @JsonNodes = ( select n.id, n.name from dbo.nodes n where n.courseId = @id for json path, root('Nodes'))
set @CompleteJson = JSON_MODIFY(@JsonCourse,'append $',JSON_QUERY(@JsonNodes));
print @CompleteJson
Но наш результат такой:
[
{
"ID" : 0,
"Name" : "a name",
"Description" : "a description"
},
{
"Nodes" : [
{
"NodeID" : 10,
"NodeName" : "Node 0"
},
{
"NodeID" : 11,
"NodeName" : "Node 1"
}
]
}
]
Примечание: мы использовали гипотетические данные здесь.
Как мы можем это исправить с помощью JSON_MODIFY?