我试图通过JsonObject进行foreach,但不幸的是,它给了我一个关于"in productSizes"的错误
foreach语句无法对"JsonNode"类型的变量进行操作,因为"JsonNode"不包含"GetEnumerator"的公共定义
你知道我做错了什么吗?
var productSizes = siteJson["api"]["productDetails"]["getDetails"]["data"]["sizes"];
foreach (var size in productSizes)
{
Console.WriteLine(size);
Console.WriteLine();
}
2条答案
按热度按时间nfs0ujit1#
正如您在注解中所发现的,JsonNode有一个
.AsArray()
方法,该方法在内部使用模式匹配来返回JsonArray。但是,这不是超级安全的,因为如果productSizes
没有被反序列化为JsonArray,它将抛出异常。为了更好的安全性,您最好使用try-catch或者自己实现模式匹配,如下所示:
abithluo2#
检查
productSizes
是否为JsonArray
并对其进行迭代:阅读详情: