我从一个json文件中输入信息,然后需要检查信息是否正确。我不知道如何从对象中打印出List的值。不是所有对象都有相同的属性,我还附加了我的json文件。下面是我的代码:
public Parameters()
{
public List<int> ShortPeriodData { get; set; }
public List<int> LongPeriodData { get; set; }
public List<int> UponTriggerData { get; set; }
public string LogRecordType { get; set; }
public int? PowerVariance { get; set; }
public List<double> BatteryData { get; set; }
public List<int> MeanData { get; set; }
public List<int> MeanVariance{ get; set; }
public int? PowerMean{ get; set; }
public string TriggerType{ get; set; }
}
public main()
{
string jsonFile = File.ReadAllText(path);
var jsonResults = JsonConvert.DeserializeObject<List<Parameters>>(jsonFile);
foreach (var result in jsonResults)
{
foreach (PropertyInfo prop in result.GetType().GetProperties())
{
if (prop.GetValue(result, null) != null)
{
//Check to make sure the values are correct
}
}
}
}
json文件:
[
{
"ShortPeriodData ":[0,0,0,0]
},
{
"LongPeriodData":[0,0,0,0],
"UponTriggerData":[0,0,0,0],
"LogRecordType":"Power"
},
{
"PowerVariance":5
},
{
"BatteryData ":[0.7,0.3,1.4,5.7]
},
{
"MeanData":[65,71,81,89,98,95],
"MeanVariance":[8,4,4,3,8,5],
"PowerMean":64,
"TriggerType":"PowerUp"
}
]
这只是我从json文件中获取的数据的一个示例,实际上我阅读的是100个不同的参数。我不知道如何使用简单的方法来循环并检查数据是否正确。我试图使用switch语句来遍历所有这些参数,但这是一个很大的代码。请帮助。
2条答案
按热度按时间z9ju0rcb1#
如果你只想在屏幕上显示所有数据,最简单的方法是
zxlwwiss2#
首先,这里有一个解决你的问题的方法:
虽然这个解决方案可以让你从每个
Parameters
对象中打印出每个List<int>
属性的内容,但你完全不清楚如何“检查信息是否正确”。如果你需要为每个int列表或每组参数实现不同的验证逻辑,在这里使用反射是一个非常糟糕的想法。如果您能提供更多的细节或说明这些参数的含义,您需要验证什么,以及您打算使用这些参数的目的,我们可能能够为您提供更好的解决方案。