是不是只能这样先判断有没有这个键,有的话再判断值对不对?JObject Json = JObject.Parse(文本);
if (Json.ContainsKey("特定键") && Json["特定键"].ToString() == "特定值")
    // 包含"特定键"且该键的值为"特定值"时满足条件
else
    // 不包含"特定键"或包含该键,但该键的值不为"特定值"时不满足条件有没有办法一次就判断出来?譬如类似这样的写法:if (Json["特定键"] == JValue("特定值"))    // 编译不通过

解决方案 »

  1.   

    “Null 条件运算符”if (Json["特定键"]?.ToObject<string>() == "特定值")
    {
    }
      

  2.   

    好的。再请问,怎么判断 Json 的第一个键的键名是什么?
      

  3.   

    比较容易理解的:    var firstKey = Json.Properties().FirstOrDefault()?.Name;
    代码较少的: var firstKey =  (Json.First as JProperty)?.Name;
      

  4.   

    快?没有快的把这个变成xpath,或者类sql的查询都是没问题的,比如很多nosql数据库都支持json的直接查询,甚至说mssql也能支持json的查询问题在与快,没啥快的。都是内部遍历的,顶多是可能重新映射,内部索引。
      

  5.   

    so,随便去nuget用"json xpath" 和"json sql" 查找就可以找到一堆,至于快就未必了,json这种万能鸭型的,你除了重建索引映射,没啥更快的办法。 顶多可能是把你自己写的玩意,变成emit或类似linq的构造表达式,在内部自动代码判定返回
      

  6.   

    转成字符串判断可以吗?比如  string.Contains("\"xxx\":");