SQL Server解析嵌套属性中带有特殊字符的json值

SQL Server解析嵌套属性中带有特殊字符的json值,json,nested,special-characters,sql-server-2016,Json,Nested,Special Characters,Sql Server 2016,我有一个类似这样的json值,希望使用SQL Server查询它: declare @buffer nvarchar(max)={"request": {"user-agent": "Mozilla/5.0" } } 我搜索并发现,对于json属性中的特殊值,我们可以使用“” 但它不适用于第二层和嵌套层,比如这里的用户代理 select json_query(@buffer,'$.request."user-agent"') 如果json值如下所示: select json_query(@b

我有一个类似这样的json值,希望使用SQL Server查询它:

declare @buffer nvarchar(max)={"request": {"user-agent": "Mozilla/5.0" } }
我搜索并发现,对于json属性中的特殊值,我们可以使用“”

但它不适用于第二层和嵌套层,比如这里的用户代理

select json_query(@buffer,'$.request."user-agent"')
如果json值如下所示:

select json_query(@buffer,'$."req-uest"')
但不是在这个级别:

declare @buffer nvarchar(max)='{"request": {"user-agent": "Mozilla/5.0" } }'

select json_query(@buffer,'$.request."user-agent"')

由于返回的是单个值而不是数组或对象,因此应使用而不是
JSON\u查询

select json_value(@buffer,'$.request."user-agent"')

由于返回的是单个值而不是数组或对象,因此应使用而不是
JSON\u查询

select json_value(@buffer,'$.request."user-agent"')