c# - 仅当输入为数组时才将类调用为数组
问题描述
我一直在创建一个算法,但我遇到了一个让我停下来的问题。问题源于以下 API 响应:
{
"topic": "trade.BTCUSDT",
"data": [
{
"symbol": "BTCUSDT",
"tick_direction": "PlusTick",
"price": 8098,
"size": 328,
"timestamp":"2020-03-30T02:21:06.000Z",
"trade_time_ms":"1585534866418",
"side":"Sell",
"trade_id":"01e79e28-d1f4-59ac-b079-ca909606d91a"
}
]
}
这最初并没有造成任何问题,因为我在使用 Newtonsoft.Json 包进行反序列化时将数据称为数组,并采用第一个变量来缓解问题。我正在合并所有回复,并根据他们的回复主题对其进行排序。此响应是唯一使用方括号而不是大括号保存数据的响应。为了解决这个问题,我尝试编辑获取;放; 命令如下,但出现堆栈溢出。
public Data[] data { get { if (_data != null) { return new[] { _data }; } else { return data; } } set { if (value.Length == 1) { _data = value[0]; } else { data = value; } } }
我的问题是,get; set;
如果只设置了一个元素,是否可以将 Data 类设置为数组?
解决方案
而不是确定它是否是一个数组 - 为什么不像这样创建你的类,它会自动序列化:
public class Datum
{
public string symbol { get; set; }
public string tick_direction { get; set; }
public int price { get; set; }
public int size { get; set; }
public DateTime timestamp { get; set; }
public string trade_time_ms { get; set; }
public string side { get; set; }
public string trade_id { get; set; }
}
public class Trade
{
public string topic { get; set; }
public List<Datum> data { get; set; }
}
推荐阅读
- javascript - 无法更改源自 Android 原生基础的选取器元素的字体大小和字体粗细
- amazon-cloudformation - 如何在从控制台构建的现有服务上执行基础架构代码?
- python - 从 n m 列数据帧创建 m n 列数据帧
- r - 如何重新排列R中的列元素?
- java - 升级到 react-native 版本 0.60.4 后 react-native run-android 出错
- python - 在按钮单击时将线添加到 Plotly Scattermapbox
- kotlin - 如何在 okhttp 4 中使用新的扩展功能
- lodash - 为什么深度克隆我的状态会导致ngrx进入无限循环,不断调用我的reducer?
- matlab - 在 Matlab 中使用多个 2D 图像的 3D 点云
- javascript - indexOf() 仅适用于数组中的单个值