如何通过 SQL 查询从 SQL table 中的数据创建 JSON 中的对象数组?

How to create array of object in JSON from data in SQL table by SQL query?

我想根据 sql 查询在 json 中创建对象数组。所以我创建了 SQL 查询如下:

Select society as Society,
   (select Name as [ID.FirstName],schoolName as [School.School_Name] from Details for json path ) as Students
   
From Details
For json path, WITHOUT_ARRAY_WRAPPER

我希望我的 JSON 结果应该是这样的:

{ "Society":"England",
 "Students":[
    {
      "Id":{
        "FirstName":"Harry"
      }
    },
    {
      "School":{
         "School_Name":"St.Stephan School"
       }
    }
  ]
 }
     

我得到了不同的输出,但我知道这不是编写代码的通用方法。

{ "Society":"England",
  "Students":[
    {
      "Id":{
        "FirstName":"Harry"
      },
      "School":{
         "School_Name":"St.Stephan School"
       }
    }
  ]
 }

有人可以帮我吗?

我认为这会奏效...

select [Name] as [ID.FirstName], schoolName as [School.School_Name] 
from Details 
for json path, root('Students')

我在 MS docs 中查看了“for json”命令。我认为您不需要像以前那样拆分 select 字段。另外,我在“名称”周围添加了括号,因为记忆告诉我它是一个保留字,您可以强制将其视为带括号的字段名称。