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,我也在其中请求了"严格模式"。(那里也有一个建议的替代方法 - 尽管感觉有点黑客。