c# - 将二维数组转换为对象c#

标签 c# class object google-analytics deserialization

这一切都源于查询谷歌分析数据。对于基本查询,改变的主要因素是维度和指标。返回的对象是一种称为 GaData 的类型,您需要的实际结果位于 GaData.Rows 中。

GaData.Rows 的格式如下所示:

Rows

每个维度首先会有一行,在此示例中,有一行用于“新访客”,第二行用于“回访者”。在这些行中将是另一组包含 Dimension 值的行,然后是您指定的每个指标(我只要求一个指标)。

到目前为止,我的类(class)设置如下:

public class Results
{
    public List<Dimension> Dimensions { get; set; }
}

public class Dimension
{
    public string Value { get; set; }
    public List<Metric> Metrics { get; set; }
}

public class Metric
{
    public int Value { get; set; }
}

最后,也许只是晚了,我的大脑运转不正常,但我在将这些数据转换为 Results 时遇到了一点困难。类型,我认为是因为多层。有什么帮助吗?

编辑

我在下面添加了一个答案,说明我最终是如何完成它的,如果有人有更简洁的示例,请告诉我!

最佳答案

嗯,不知道是什么Rows在里面 Ga ,但也许这会为您指明正确的方向。

var results
    = GaData.Rows.Select(x => x.Rows.Select(y =>
          new Dimension { Value = y.Value, Metrics = new List<Metric> {innerRow.Metric}}));

关于c# - 将二维数组转换为对象c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532660/

相关文章:

javascript - 如何使用javascript中reduce函数中的属性值跳过重复对象?

c# - 如何在类之间传递对象

c# - 在 CPU 密集型计算中需要 Blazor Wasm 性能改进

c++ - 派生类不调用整个基础构造函数

c++ - 没有名字的类(class)

C++ dynamic_cast 运行时错误

javascript - 通过javascript中的对象数组进行映射

c# - 调整包含许多项目的 ScrollViewer 的大小非常慢

c# - 当字段名称是保留关键字时从 F# 访问 .Net 字段

c# - 将两个 sbyte 合并为 int