【问题标题】:JSON string is validated but SQL Server 2016 returns a validation errorJSON 字符串已验证,但 SQL Server 2016 返回验证错误
【发布时间】:2016-11-06 21:34:34
【问题描述】:

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

【问题讨论】:

  • 超过 200 个字符。
  • 你说得对,有200多个字符

标签: json


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多