禁用对读取(无效的 JSON)单引号字符串的支持



Newtonsoft.Json for C#支持读取{'key':'value'}之类的东西,但这是不合适的JSON。是否可以禁用它,以便它解析和读取更像 PHP(其中 'as PHP 不支持 {'key':'value'} 而是 {"key":"value"})

您可以编写自己的JsonReader子类来执行此操作,但是JsonTextReader类(据我所知,这是最常用的类)不支持此功能。例如,从ParseValue方法:

case '"':
case ''':
ParseString(currentChar, ReadType.Read);
return true;

我在Google.Protobuf中有一个严格的JSON分词器 - 它是内部的,但应该给你一些想法,自己写这样的分词器并不是很棘手。当然,如果您真的想使用除严格之外 Json.NET,这对您没有帮助。

您可能想阅读并可能投票/评论 Json.NET 存储库中的问题 646,我也在其中请求了"严格模式"。(那里也有一个建议的替代方法 - 尽管感觉有点黑客。

相关内容

  • 没有找到相关文章

最新更新