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

7 c# json.net

用于C#的Newtonsoft.Json支持读取类似{'key':'value'}但不正确的JSON.是否有可能禁用它,因此它解析和读取更像PHP(其中PHP不支持{'key':'value'}但是{"key":"value"})

Jon*_*eet 16

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

case '"':
case '\'':
    ParseString(currentChar, ReadType.Read);
    return true;
Run Code Online (Sandbox Code Playgroud)

我在Google.Protobuf中有一个严格的JSON标记器 - 它是内部的,但是应该让你知道自己编写这样的标记器并不是非常棘手.如果你真的想要使用Json.NET而不是严格,那对你没有帮助.

您可能希望阅读并可能在Json.NET仓库中对问题646进行投票/评论,其中我也请求了"严格模式".(那里有一个建议的替代方法 - 虽然感觉有点像黑客.)