用于C#的Newtonsoft.Json支持读取{'key':'value'}
之类的东西,但那是不正确的JSON。有可能禁用它,因此它解析和读取更像PHP(其中PHP不支持{'key':'value'}但是{“key”:“value”})
答案 0 :(得分:16)
您可以编写自己的JsonReader
子类来执行此操作,但JsonTextReader
类(最常用的一类,据我所知)并不适用支持这个。从ParseValue
方法,例如:
case '"':
case '\'':
ParseString(currentChar, ReadType.Read);
return true;
我在Google.Protobuf中有strict JSON tokenizer - 它是内部的,但是应该让你知道自己编写这样的标记器并不是非常棘手。当然,如果你真的想要使用Json.NET而不是严格,那对你没有帮助。
您可能希望在Json.NET仓库中阅读并可能对issue 646进行投票/评论,我在那里请求了严格模式"同样。 (那里有一个建议的替代方法 - 虽然感觉有点像黑客。)