【发布时间】:2019-10-21 12:17:05
【问题描述】:
我正在尝试获取一个类的每个属性并打印它,包括数组(使用相应的索引扩展)。如果我执行以下操作,我会看到如果出现数组,它会打印数组的名称。
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。
有没有其他方法可以做到这一点?
编辑:我的问题与this question 不同,因为我的问题是检查 JObject 的 JProperty 是否为数组,而不是检查 JToken 是否为 Jproperty 或 JArray。
【问题讨论】:
-
你能发一个minimal reproducible example吗?
-
检查 propertyToken 的实例是否属于特定的 .NET 类/接口。我怀疑它适用于...但是 Json 数组是在解析后定义的
-
看看这个类 (newtonsoft.com/json/help/html/…),HasValues、Count 和 ChildrenToken 大概就是你要找的机器人了。
-
@SalahAkbari 我或多或少地尝试过相同的方式。尽管如此,我的
propertyToken的类型仍然是Property,即使它是一个数组。
标签: c# json serialization json.net