Joh*_*ohn 5 sql t-sql json escaping sql-server-2016
我有以下JSON数据
DECLARE @jsonData NVARCHAR(MAX)
SET @jsonData =
'{
"insertions":[
{
"id":"58735A79-DEA8-462B-B3EB-C2797CA9D44E",
"last-modified":"2017-08-08 13:07:32",
"label":"HelloWorld1"
},
{
"id":"00565BCD-4240-46CF-A48F-849CB5A8114F",
"last-modified":"2017-08-08 13:11:38",
"label":"HelloWorld12"
}
]
}'
Run Code Online (Sandbox Code Playgroud)
并尝试从中执行选择:
SELECT
*
FROM
OPENJSON(JSON_QUERY(@jsonData,'$.insertions'))
WITH
(uuid UNIQUEIDENTIFIER '$.id',
modified DATETIME '$.last-modified',
Label NVARCHAR(128) '$.label'
)
Run Code Online (Sandbox Code Playgroud)
它不喜欢最后修改字段中的破折号.
消息13607,级别16,状态4,行18
JSON路径格式不正确.在位置6处找到意外的字符" - ".
有没有办法逃避查询中的破折号?如果没有破折号,一切正常.
根据需要支持JSON,我使用兼容级别= 130的SQL Server 2016
Joh*_*ohn 10
在字段名称周围添加双引号似乎有效
SELECT
*
FROM
OPENJSON(JSON_QUERY(@jsonData,'$.insertions'))
WITH
(uuid UNIQUEIDENTIFIER '$.id',
modified DATETIME '$."last-modified"',
Label NVARCHAR(128) '$.label'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |