【问题标题】:Create JSON string using variable使用变量创建 JSON 字符串
【发布时间】:2020-12-10 15:02:43
【问题描述】:

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

[{

    "Name": "John", 

    "AccountType": 1

},
{

    "Name": "Steven", 

    "AccountType": 1

}
]

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

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

提前致谢。

【问题讨论】:

    标签: sql arrays json sql-server sql-server-2017


    【解决方案1】:

    在 SQL Server 2016 中,微软添加了一些有用的 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

    【讨论】:

      【解决方案2】:

      您可以使用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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-26
        • 1970-01-01
        • 2018-07-06
        • 2013-04-12
        • 2019-09-02
        相关资源
        最近更新 更多