2016-11-06 56 views
1

這是返回錯誤的代碼, JSON文本格式不正確。意外的字符「「」位置處發現194JSON字符串已驗證,但SQL Server 2016返回驗證錯誤

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

這是超過200個字符。 – GSerg

+0

你是對的,有超過200個字符 – user2063329

回答

1

你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)