Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中将日期转换为JSON对象#_C#_Json_Datetime - Fatal编程技术网

C# 在c中将日期转换为JSON对象#

C# 在c中将日期转换为JSON对象#,c#,json,datetime,C#,Json,Datetime,我用一个静态方法创建了一个C#类,该方法将任何对象转换为JSON对象。我已经为此使用了JavaScriptSerializar。这是我的密码 public class JS { public static string GetJSON(object obj) { JavaScriptSerializer js = new JavaScriptSerializer(); string retJSON = js.Serialize(obj);

我用一个静态方法创建了一个C#类,该方法将任何对象转换为JSON对象。我已经为此使用了
JavaScriptSerializar
。这是我的密码

public class JS
{
    public static string GetJSON(object obj)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        string retJSON = js.Serialize(obj);
        return retJSON;
    }
}
我还有一个类只有两个属性,
Date
&
Remark
。这是我的班级

public class RemarkData
{
    public DateTime Date { set; get; }
    public string Remark { set; get; }
}
现在,我使用以下代码将
RemarkData
类的对象转换为JSON

JS.GetJSON(objRemarkData);
这是我得到的输出

{“日期”:“/日期(1389403352042)/”,“备注”:“Sme备注”}

这是我需要的输出

{“日期”:1389403352042,“备注”:“一些备注”}

我应该怎么做才能得到这样的输出?有什么帮助吗?

您可以试试,它将日期序列化为ISO字符串

double ticks = Math.Floor(objRemarkData.Date.ToUniversalTime() 
        .Subtract(new DateTime(1970, 1, 1))      
        .TotalMilliseconds); 
var newob = new { Date =ticks, Remark = objRemarkData.Remark};
JS.GetJSON(newob);
public class JS
{
    public static string GetJSON(object obj)
    {
        string retJSON = JsonConvert.SerializeObject(obj);
        return retJSON;
    }
}
实际上,您可以直接使用它,不需要封装在另一个函数中

这也是asp.net web api序列化日期对象的方式。有关为什么ISO字符串是一个不错的选择的更多信息,请查看此链接

此长数字是“从纪元开始的毫秒数”。我们可以使用下面的代码片段将其转换为正常的javascript日期,如另一篇so文章中所解释的

您还可以将来自的漂亮库与以下代码片段一起使用

var newDate = dateFormat(jsonDate, "dd/mm/yyyy h:MM TT");

您可能会注册自己的
DateTime
转换器。这个问题的答案是否有助于您:?该示例是以
dd/mm/yyyy
或我指定的某种常规格式转换日期。但是日期是如何转换成这种类型的值的呢?它应该是
DateTime.Now.Ticks/TimeSpan.tickspermillisond
如何将JSON日期字符串“/date(1389403352042)/”转换成DateTime对象呢?只需对数值进行字符串操作,然后从那里开始?
var newDate = dateFormat(jsonDate, "dd/mm/yyyy h:MM TT");