这是返回错误的代码, JSON文本格式不正确。在位置194处发现了意外的字符“”。
declare @json nvarchar(200);
SET @json=N'["wclass",{"student":{"name":"Linda Jones","legacySkill":"Access, VB 5.0"}},{"student":{"name":"Adam Davidson","legacySkill":"Cobol,MainFrame"}},{"student":{"name":"Charles Boyer","legacySkill":"HTML, XML"}}]'
Select * from OPENJSON(@json)
SQL Server 2016返回正确的结果,但消息显示它无效且有一些错误。
验证在此进行了测试: https://jsonformatter.curiousconcept.com/ RFC:4627
答案 0 :(得分:4)
您的JSON被截断 - 请参阅JSON的结尾:
select substring(@json,194, len(@json))
这将有效:
declare @json nvarchar(4000);
SET @json=N'["wclass",{"student":{"name":"Linda Jones","legacySkill":"Access, VB 5.0"}},{"student":{"name":"Adam Davidson","legacySkill":"Cobol,MainFrame"}},{"student":{"name":"Charles Boyer","legacySkill":"HTML, XML"}}]'
Select * from OPENJSON(@json)