2017-01-26 14 views
0

у меня есть значение JSon, как это и требуется запросить его с SQL Server:SQL значение синтаксического анализа сервера JSON с особым характером в вложенным свойствам

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"') 
+0

до сих пор нет ответа ? –

ответ

1

Поскольку вы возвращаете одно значение, а не массив или объект, вы должны использовать JSON_VALUE вместо JSON_QUERY:

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