如何在SQL Server 2016中使用OPENJSON读取Json中带空格的字段名称

杰耶什坦克

如何Sql Server 2016中使用OPENJSON从字段名称包含空间的json文件中读取值请参见以下代码:

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。是否可以读取此值?

巨嘴鸟

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

我会[ ]从您的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   "')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章