【发布时间】:2017-04-30 08:49:54
【问题描述】:
我对如何从对象中的对象获取值有些困惑。我尝试了很多方法,但似乎无法返回值。
var 结果返回 Json 这个:
{
"Date": "2016-12-14"
"Stats": {
"A": 9.23,
"B": 5.63,
"C": 0
}
}
尝试访问“Stats”值的代码:
var apiResult = await client.GetStringAsync(url);
var results = apiResult.DeserializeObject<StatsLA>(apiResult);
object[] getValues = results.GetType()
.GetProperties()
.Select(p =>
{
object value = p.GetValue(results);
return value == null ? null : value.ToString();
})
.ToArray();
最终目标是遍历结果并仅返回大于 0 的值。在此示例中,只有“A”和“B”会返回。我知道如何执行循环/linq 语句,但首先我需要获取值。任何建议都将不胜感激,或者只是指出如何处理的正确方向。
这是类文件:
public class StatsLA
{
public string Date { get; set; }
public LocalStats stats { get; set; }
}
public class LocalStats
{
public double A { get; set; }
public double B { get; set; }
public double C { get; set; }
}
想要的结果:
{
"Date": "2016-12-14"
"Stats": {
"A": 9.23,
"B": 5.63
}
}
【问题讨论】:
-
我建议在 Json.NET 中使用
JObject模型,而不是在这样的场景中使用强类型反序列化。
标签: c# arrays json linq object