在c#中没有引号的键的JSON对象无效

时间:2017-04-18 10:21:42

标签: c# .net json validation json.net

在javascript中,question JSON.parse(json)将验证失败 如果没有为json对象中的名称提供引号,c#中是否有任何替代方法。 (名称表示键值对中的键)

{
    name: "s"
}

应该无法验证

{
    "name": "s"
}

应通过验证

尝试使用Newtonsoft.Json的JObject.Parse(正文);但它会自动添加引号并通过验证。 我正在尝试根据c#中的JSON标准RFC 4627进行验证。想知道在没有为c#

中的密钥提供报价的情况下是否存在验证失败的设施

1 个答案:

答案 0 :(得分:2)

最后我自己想出了解决方案。

    public bool ValidateMissingDoubleQuotes(string json)
    {
        using (var reader = new JsonTextReader(new StringReader(json)))
        {
            while (reader.Read())
            {
                return !(reader.TokenType == JsonToken.PropertyName && reader.QuoteChar != '\"');
            }
        }
        return true;
    }