如何确定 JObject 的 JProperty 是否是数组?



我正在尝试获取类的每个属性并打印它,包括数组(使用相应的索引扩展(。如果我执行以下操作,我看到如果出现数组,它会打印数组的名称。

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);
}

相关内容

  • 没有找到相关文章

最新更新