使用变量创建 JSON 字符串

Create JSON string using variable

我正在尝试获取以下 JSON 字符串:

[{

    "Name": "John", 

    "AccountType": 1

},
{

    "Name": "Steven", 

    "AccountType": 1

}
]

我知道 AccountType 将始终为 1,并且我有以下格式的字符串变量“John;Steven;Brian;Mike”

我尝试使用 XML PATH 和 splitToTable 函数构建此 JSON,但没有成功。我怎样才能实现它?

提前致谢。

您可以使用 string_split()for json:

declare @str nvarchar(max) = 'John;Steven;Brian;Mike';
select *
from (
    select value as [Name], 1 as [AccountType]
    from string_split(@str, ',')
) t
for json auto;

在 SQL Server 2016 中,Microsoft 添加了一些有用的 JSON 功能。所以这很容易实现:

DECLARE @Variable nvarchar(max) = 'John;Steven;Brian;Mike';
SELECT [value] as Name, 1 as AccountType  FROM STRING_SPLIT(@Variable,';')
FOR JSON PATH

有关此功能的更多信息,请点击此处 - https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15