Newtonsoft JSON不包含';任意';

本文关键字:任意 包含 JSON Newtonsoft | 更新日期: 2023-09-27 18:23:58

我正在尝试循环Json对象,并使用.Any()扩展检查我的所有属性是否都设置为true

dynamic fares = JsonConvert.DeserializeObject(content.GetValue<string>("cruiseFares"));                   
foreach (var f in fares)
{
   if (fares.Any(f.fareSold != "False" ))
   {
         content.SetValue("cruiseSoldOut", soldOut);
   }
}

我也尝试过:

dynamic fares = JObject.Parse(content.GetValue<string>("cruiseFares"));

但是我有Error reading JObject from JsonReader. Current JsonReader item is not an object

Newtonsoft JSON不包含';任意';

"Any"似乎是一个LINQ方法,这意味着您要添加对适当命名空间的引用,即"使用System.LINQ"

另一件事是,上面的循环代码中显然有一个错误。

你的意思是这样的吗?

if (fares.Any(f => f.fareSold != "False" ))
{
   content.SetValue("cruiseSoldOut", soldOut);
}

或者,如果你不能使用LINQ(这是动态的情况,就像下面L.B评论中所说的那样),请使用foreach并编写正确的测试:

foreach(var f in fares)
{
    if (f.fareSold != "False" ))
    {
       content.SetValue("cruiseSoldOut", soldOut);
    }
}

当然,如果这是你的意思。

或者,第三种解决方案,创建一个合适的类型来反序列化。您的代码将更安全,并且可以使用LINQ的Any方法。