【发布时间】:2016-03-26 09:36:37
【问题描述】:
我实际上是 Web Api 的新手,所以我的问题可能听起来有点奇怪。
我有简单的 API 来返回有关价格变化的历史信息。我的控制器的操作如下所示:
[HttpGet]
[Route("api/history/{id}/{size}")]
public async Task<IEnumerable<PriceHistoryRecordModel>> GetHistory(string id, Size size)
PriceHistoryRecordModel 在哪里
[DataContract]
public class PriceHistoryRecordModel
{
[DataMember]
public DateTime Date { get; set; }
[DataMember]
public double Value { get; set; }
}
但是,问题是 - 操作返回以下格式的 JSON
[{"Date":"2016-02-07T08:22:46.212Z","Value":17.48},{"Date":"2016-02-08T09:34:01.212Z","Value":18.37}]
但是,由于客户对数据格式的特定要求,我需要我的 JSON 以这种方式显示
[[1238371200000,17.48],[1238457600000,18.37]]
所以,我想知道
- 是否有办法实现这种自定义序列化?
- 我可以将此自定义序列化包装在属性中并将其用作方面吗?
【问题讨论】:
-
尝试将您的返回类型更改为
double[]:public async Task<IEnumerable<double[]>> GetHistory(string id, Size size)。并使用DateTime.Millisecond将您的日期时间转换为一个数字 -
@KhanhTO 谢谢,这有效并解决了眼前的问题。但是,自定义序列化的问题仍然存在。
标签: c# json serialization asp.net-web-api2