【发布时间】:2018-01-11 07:53:31
【问题描述】:
我从在线服务提供商处收到如下所示的数据:
{
name: "test data",
data: [
[ "2017-05-31", 2388.33 ],
[ "2017-04-30", 2358.84 ],
[ "2017-03-31", 2366.82 ],
[ "2017-02-28", 2329.91 ]
],
}
我想将其解析成如下所示的对象:
public class TestData
{
public string Name;
public List<Tuple<DateTime, double>> Data;
}
我唯一能找到的就是如何将一个对象数组解析成一个元组列表,例如:Json.NET deserialization of Tuple<...> inside another type doesn't work?
有没有办法编写一个自定义转换器来处理这个问题?
【问题讨论】:
-
为什么是元组?在大多数情况下它们有点糟糕(C#7 除外,但这真的是另一回事)
-
一个类也很好......但它是一种简单的方法来定义包含两种“不同”数据类型的东西......任何一种方式都可以。
-
@BrianRice:一般来说,可以编写一个小类来保存相同的数据并为其提供更有用的名称。 Item1 和 Item2 永远不会产生可读的代码......有时你需要元组的功能(例如它的相等逻辑)但通常一个小的命名类会完美地工作并且更具可读性。
-
唯一的(如果有的话)优势是我只需要编写一个通用转换器......我可以将它用于任何可能类型的配对数据......你也会看到每当我使用元组时,我都会立即将这些项目作为命名变量提取出来......这有助于维护......但是,我确实听到了你在说什么。
标签: c# arrays json tuples deserialization