如何解析JSON中的项并跳过无效项
本文关键字:无效 何解析 JSON | 更新日期: 2023-09-27 17:57:41
我在这里有一些JSON数据-http://backpack.tf/api/IGetPrices/v3/?key=534639d04dd7b85e028b4773
正如您所看到的,["响应"]["价格"]字段有各种其他条目,主要是
在价格令牌之后,下一个是10,而不是0或1。
我需要做的是,通过一个循环或其他什么,获得prices
下的所有有效条目,并获得它们的6>0>当前>值
就像,如果在一个循环中,类似的东西
["response"]["prices"][i]["6"]["0"]["current"]["value"]
问题是,我不能让我的c#代码忽略0和1等值。当我运行for循环时,它只会使崩溃
我如何才能让它跳过不存在的条目,只考虑存在的条目??
如果您使用Json。Net,您可以使用LINQ-to-JSON API(JTokens/JObject)提取所需的数据。它有一个方法SelectToken
,它允许您使用类似路径的语法来导航JSON。如果路径中缺少任何令牌,则该方法将返回null。因此,我们可以向下导航到prices
节点并循环其属性,跳过您认为"无效"的-1
。然后,对于剩余的每个属性,再次使用SelectToken
导航到["6"]["0"]["current"]["value"]
(如果存在)。如果是,我们将打印名称和值。
JObject root = JObject.Parse(json);
JObject prices = (JObject)root.SelectToken("response.prices");
foreach (JProperty prop in prices.Properties())
{
if (prop.Name != "-1")
{
JToken value = prop.Value.SelectToken("6.0.current.value");
if (value != null)
{
Console.WriteLine(prop.Name + ": " + value.ToString());
}
}
}
这有帮助吗?