有这个示例代码,但它开始讨论毫秒/纳秒问题.
自从C#中的Unix纪元以来,同样的问题出现在MSDN上,秒.
这是我到目前为止所得到的:
public Double CreatedEpoch
{
get
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
TimeSpan span = (this.Created.ToLocalTime() - epoch);
return span.TotalSeconds;
}
set
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
this.Created = epoch.AddSeconds(value);
}
}
Run Code Online (Sandbox Code Playgroud) 目前我有一些问题.我正在使用C#和Json.NET.问题是我总是得到:
{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}
所以我使用Json.NET的方式如下.我有一个应该保存的类.这个类看起来像这样:
public class stats
{
public string time { get; set; }
public string value { get; set; }
}
public class ViewerStatsFormat
{
public List<stats> viewerstats { get; set; }
public String version { get; set; }
public ViewerStatsFormat(bool chk)
{
this.viewerstats = new List<stats>();
}
}
Run Code Online (Sandbox Code Playgroud)
此类的一个对象将被填充并保存:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)
保存部分工作正常,文件存在并填充.之后,文件将被读回到类中:
try
{
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
//otherstuff
}
catch(Exception ex)
{
//error loging stuff
}
Run Code Online (Sandbox Code Playgroud)
现在在current =行上出现异常:
{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}
我不知道为什么会这样.json文件如下 - > 点击我即时JSON链接
有没有人有任何想法?
我有一个 WebAPI(用 C# 编写)、一个接受带有名为TriggerDelay的 System.TimeSpan-Property 的复杂对象的 POST 方法,以及一个 React Native 应用程序,我从其中以 JSON 格式传递该对象。
但是,此 TimeSpan 属性未正确序列化,我不断在 API 端获取 00:00:00 值。
我正在尝试这样:
"triggerDelay":{
"hours": "30",
"minutes": "10",
"seconds": "0"
},
Run Code Online (Sandbox Code Playgroud)
或者像这样:
"triggerDelay": "30:10:00"
Run Code Online (Sandbox Code Playgroud)
但仍然没有运气......在 API 中,它始终是 00:00:00。
我将不胜感激任何帮助!
UPD这是我的模型:
"triggerDelay":{
"hours": "30",
"minutes": "10",
"seconds": "0"
},
Run Code Online (Sandbox Code Playgroud)
我的WebAPI方法:
public async Task<IActionResult> Publish([FromBody] Alarm alarm) {}
Run Code Online (Sandbox Code Playgroud)
这是我的原始 JSON 对象,在 Postman 的请求正文中设置:
{
"id": "d17ef748-f378-4728-c6c2-9dfab1efce5b",
[...other properties...]
"triggerDelay":{
"hours": "30",
"minutes": "10",
"seconds": "0"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试反序列化以下 JSON
{"serverTime":1613967667240}
Run Code Online (Sandbox Code Playgroud)
进入以下类的对象
public class ApiServerTime
{
[JsonPropertyName("serverTime")]
public DateTime ServerTime
{
get;
private set;
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下命令:
JsonSerializer.Deserialize<ApiServerTime>(jsonString);
Run Code Online (Sandbox Code Playgroud)
但生成的对象包含ServerTime == DateTime.MinValue. 我究竟做错了什么?