Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 通过WebAPI正确序列化LocalTime_C#_Asp.net Web Api_Json.net_Nodatime - Fatal编程技术网

C# 通过WebAPI正确序列化LocalTime

C# 通过WebAPI正确序列化LocalTime,c#,asp.net-web-api,json.net,nodatime,C#,Asp.net Web Api,Json.net,Nodatime,我在通过WebAPI序列化和反序列化NodeTime的本地时间时遇到问题 类定义 public class ExampleClass { public LocalTime ExampleLocalTime { get; set; } } 尝试序列化输出 // create example object var exampleclass = new ExampleClass() { ExampleLocalTime = new LocalTime(DateTime.Now.H

我在通过WebAPI序列化和反序列化NodeTime的本地时间时遇到问题

类定义

public class ExampleClass
{
    public LocalTime ExampleLocalTime { get; set; }
}
尝试序列化输出

// create example object
var exampleclass = new ExampleClass() 
{ 
    ExampleLocalTime = new LocalTime(DateTime.Now.Hour, DateTime.Now.Minute) 
};
// serialise output
var jsonsettings = new JsonSerializerSettings()
{
    DateParseHandling = DateParseHandling.None,
    NullValueHandling = NullValueHandling.Ignore
};
jsonsettings.Converters.Add(new IsoDateTimeConverter());
string exampleoutput = JsonConvert.SerializeObject(exampleclass, Formatting.Indented, jsonsettings);
我想将时间格式格式化为类似ISO的标准,例如12:34:53,但它会将本地时间表示为滴答声,并将其反序列化为以下格式:

{ “ExampleLocalTime”:{ “滴答声”:553800000000 } }


在反序列化和序列化时,我需要添加什么以避免出现滴答声?

Noda Time还有一个额外的NuGet包可用于JSON.Net序列化

PM>  Install-Package NodaTime.Serialization.JsonNet
要使用它,只需调用其配置扩展方法:

var jsonsettings = new JsonSerializerSettings()
jsonsettings.ConfigureForNodaTime();
你可以阅读更多关于它的内容(大约在本页的一半)