我正在尝试获取类的每个属性并打印它,包括数组(使用相应的索引扩展(。如果我执行以下操作,我看到如果出现数组,它会打印数组的名称。
foreach (JProperty property in localJson.Properties())
{
Console.WriteLine("NAME :" + property.Name + "======================");
}
但是我希望打印所有数组元素及其索引,我应该能够识别该属性是否是数组。我尝试按如下方式进行操作,
foreach (JProperty property in localJson.Properties())
{
JToken propertyToken = property;
if (propertyToken is JArray)
{
Console.WriteLine("Array"); //Further Manipulations
}
else
{
Console.WriteLine("NAME :" + property.Name);
}
}
但我仍然看到propertyToken
属于Property
型,因此缺少if
. 还有其他方法可以做到这一点吗?
编辑:我的问题与这个问题不同,因为我的问题是检查 JObject 的 JProperty 是否是数组,而不是 JToken 是否是 Jproperty 或 JArray。
您的代码当前正在询问JProperty
是否为JArray
。 答案总是否定的。JProperty
不是从JArray
派生出来的。 (两者都源自JToken
。
你真正想问的是JProperty
的价值是否是一个JArray
。
JToken propertyValue = property.Value;
if (propertyValue.Type == JTokenType.Array)
{
Console.WriteLine("Array"); //Further Manipulations
}
else
{
Console.WriteLine("NAME :" + property.Name);
}