2017-07-27 85 views
0

我如何读取从该字段名称JSON文件读取值字段名称包含在SQL服务器2016使用OPENJSON空间。请参阅以下代码:如何使用空间以JSON使用OPENJSON在SQL Server 2016

DECLARE @json NVARCHAR(MAX) 
SET @json = N'{ "full name" : "Jayesh Tank"}'; 
SELECT * FROM OPENJSON(@json) WITH ([name] [varchar](60) '$.full name') 

此外,该空间中的另一个示例代码位于字段名称后面。

SET @json = N'{ "name " : "abc"}'; 
SELECT * FROM OPENJSON(@json) WITH ([name] [varchar](60) '$.name') 

'$.name'将返回null.Is是否有读取此值的方法?

回答

2

通常在属性名称中使用空格是一个坏主意。

我会在您的OPENJSON名称和varchar(60) - 源MSDN OPENJSON中省略[]

我们真正回答你的问题:

您需要格式化用双引号的属性WITH子句中:

@DECLARE @json NVARCHAR(MAX); 
SET @json=N'{ "full name" : "Jayesh Tank"}'; 
SELECT * FROM OPENJSON(@json) WITH (name varchar(60) '$."full name"') 

对于第二个:

SET @json = N'{ "name " : "abc"}'; 
SELECT * FROM OPENJSON(@json) WITH (name varchar(60)'$."name "') 
+0

谢谢。工作:) –

+0

@ user2025537伟大:0)。请接受答案 - https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。谢谢 – tukan

相关问题