如何从SQL Server读取JSON数据?

Duh*_*uha 4 sql sql-server json

我想从SQL Server 2012中读取Json数据,我知道它将支持在SQL Server 2016中读取Json数据,但我现在需要一种解决方法来阅读它.

我有一个Text这个Json代码的列:

{"en": "Green", "ar": "????"}
Run Code Online (Sandbox Code Playgroud)

我想要一个过程或函数给它语言前缀并返回给我值.

Ale*_*lex 6

如果您在SQL Server 2012中寻找表格和表格到JSON的通用SQL Server JSON,本文提供了一个parseJSON和一个dbo.ToJSON函数.使用此代码,您可以运行以下代码:

select * from dbo.parseJSON('  
    {
        "en": "Green",
        "ar": "????"
    }
')
Run Code Online (Sandbox Code Playgroud)

此查询将返回

element_id | sequenceNo | parent_Id | Object_ID | Name | StringValue | ValueType
-----------+------------+-----------+-----------+------+-------------+-----------
1          | 0          | 1         | NULL      | en   | Green       | string
2          | 0          | 1         | NULL      | ar   | ????        | string
3          | 1          | NULL      | 1         | -    |             | object
Run Code Online (Sandbox Code Playgroud)

如果表中的某个列是JSON文档,则可以使用CROSS APPLY:

create table dbo.test(ID int identity(1,1) , json varchar(max))

insert into dbo.test (json)
select '  
    {
        "en": "Green",
        "es": "Verde"
    }
'

insert into dbo.test (json)
select '  
    {
        "en": "Red",
        "es": "Rojo"
    }


select * from dbo.test t
cross apply (select * from dbo.parseJSON(json)) details
Run Code Online (Sandbox Code Playgroud)

这将返回以下输出:

在此输入图像描述