1

我有以下声明,我试图在 Sql Server 2016 CTP 3 中执行:

DECLARE @json nvarchar(max)

set @json = '[ 
   { "name": "John" },
   { "name": "Jane", "surname": "Doe" }
]'

select
    'othervalue' as o,
    @json as j
for json path

问题是当我执行这些语句时,我得到以下 Json 字符串(带有转义字符):

[{"o":"othervalue","j":"[ \r\n   { \"name\": \"John\" },\r\n   { \"name\": \"Jane\", \"surname\": \"Doe\" }\r\n]"}]

我的问题是如何正确选择带有 select 语句的 Json 字符串(没有转义字符)。

谢谢

4

1 回答 1

2

用 JSON_QUERY 包装 @json 变量:

select
     'othervalue' as o,
      JSON_QUERY(@json) as j
for json path

请参阅 MSDN 上的常见问题解答https://msdn.microsoft.com/en-us/library/mt631706.aspx

于 2016-02-28T19:52:06.463 回答