如何在没有" / Date()/"的情况下序列化日期

时间:2018-03-01 04:31:22

标签: c# asp.net json serialization highstock

我将以下类序列化为JSON并通过API返回:

public class HighStockChart
{
    public string name { get; set; }
    public IEnumerable<HighStockChartData> data { get; set; }
}

public class HighStockChartData
{
    public DateTime x { get; set; }
    public double y { get; set; }
}

现在,当我在为数据做控制台日志时,我得到以下格式:

{x: "/Date(1519154100000)/", y: 392.61}
{x: "/Date(1519179300000)/", y: 392.732}
{x: "/Date(1519212600000)/", y: 392.732}
{x: "/Date(1519173000000)/", y: 392.733}
{x: "/Date(1519187400000)/", y: 392.757}
{x: "/Date(1519169400000)/", y: 392.761}

但我需要没有/ Date的数据。示例格式如下:

{x:1519154100000),y:392.61}  {x:1519179300000),y:392.732}

修改

构建我正在做的日期字符串

IEnumerable<HighStockChartData> stockChartXY = tag.Select(t => new HighStockChartData
                    {
                        x = DateTime.ParseExact(t.Date, "dd MMM yyyy HH:mm:ss:fff", null),
                        y = double.Parse(t.Value)
                    });

HistorianTagDetail historianTagDetailsresult = new HistorianTagDetail
                    {

                        Average = average,
                        HighStockChartData = stockChartXY
                    };

chartData = ChartHelper.CreateHighStockChart(tagDetails);

return Json(chartData);

通过使用jQuery循环并剥离所有数据只有在我使用q webClient时才有效。我必须找到另一种解决方案,如果我尝试将其作为电子邮件发送,使用服务或在桌面应用程序中使用图表,则必须使用C#去除字符。

我可以将日期序列化为Long(我们目前有)但没有&#34; / Date()&#34;?

是否要设置自定义属性?或者我可以在序列化后循环遍历对象,删除字符然后返回吗?

前:

chartData = ChartHelper.CreateHighStockChart(tagDetails);
var jsonData =  Json(chartData);  
var jDataList = new List<object>();


//Not actual code, just a theory I can think of 
foreach(jData in jsonData)
{
//Do something to strip of the brackets
//Add to a list 
jDataList.Add(jData);
}
return jDataList;

0 个答案:

没有答案
相关问题