验证JSON字符串,但SQL Server 2016返回验证错误

时间:2016-11-06 21:34:34

标签: json

这是返回错误的代码, 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

1 个答案:

答案 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)