SQL Server OPENROWSET未提取JSON数据
我正在尝试将JSON文件数据“WhiteListDorigins”保存在SQL表中,但我一直收到空条目。 我使用了相同的方法将属性导入到表中,虽然JSON的格式不同,但这种方法以前也有效 JSON SQL 结果 您需要在列定义中使用显式模式和SQL Server OPENROWSET未提取JSON数据,json,sql-server,Json,Sql Server,我正在尝试将JSON文件数据“WhiteListDorigins”保存在SQL表中,但我一直收到空条目。 我使用了相同的方法将属性导入到表中,虽然JSON的格式不同,但这种方法以前也有效 JSON SQL 结果 您需要在列定义中使用显式模式和作为JSON选项 如果要从JSON属性返回嵌套的JSON片段,可以 必须提供AS JSON标志。如果不使用此选项,则属性 找不到,OPENJSON返回空值,而不是 引用的JSON对象或数组,或者在 严格模式 声明: DECLARE @Json nvarcha
作为JSON
选项
如果要从JSON属性返回嵌套的JSON片段,可以
必须提供AS JSON标志。如果不使用此选项,则属性
找不到,OPENJSON返回空值,而不是
引用的JSON对象或数组,或者在
严格模式
声明:
DECLARE @Json nvarchar(max) = N'{
"Client": {
"whiteListedOrigins": [
"file://",
"https://mobile.gtent.eu",
"https://mobile.assists.co.uk",
"https://valueadds3.active.eu",
"https://flash3.active.eu",
"https://valueadds3.assists.co.uk"
]
}
}'
SELECT *
FROM OPENJSON (@JSON, '$.Client') WITH (
whiteListedOrigins nvarchar (MAX) AS JSON
)
输出:
--------------------
whiteListedOrigins
--------------------
[
"file://",
"https://mobile.gtent.eu",
"https://mobile.assists.co.uk",
"https://valueadds3.active.eu",
"https://flash3.active.eu",
"https://valueadds3.assists.co.uk"
]
注:
您的JSON(没有周围的
{
和}
)无效。您发布了确切的JSON吗?它的开头和结尾缺少花括号。@SalmanA这只是一个摘录。您添加的额外的{}
大括号是最重要的部分,否则会出现SQL错误JSON文本格式不正确。在位置0处发现意外字符“”。
@Always学习是的,谢谢,答案会用此便条更新。@Zhorov过去几天你真的帮了我的忙!谢谢你。@GrahamNorton很乐意帮忙。
DECLARE @Json nvarchar(max) = N'{
"Client": {
"whiteListedOrigins": [
"file://",
"https://mobile.gtent.eu",
"https://mobile.assists.co.uk",
"https://valueadds3.active.eu",
"https://flash3.active.eu",
"https://valueadds3.assists.co.uk"
]
}
}'
SELECT *
FROM OPENJSON (@JSON, '$.Client') WITH (
whiteListedOrigins nvarchar (MAX) AS JSON
)
--------------------
whiteListedOrigins
--------------------
[
"file://",
"https://mobile.gtent.eu",
"https://mobile.assists.co.uk",
"https://valueadds3.active.eu",
"https://flash3.active.eu",
"https://valueadds3.assists.co.uk"
]