json - NewtonSoft Json 反序列化错误 - 无法将字符串转换为十进制 :/Date(1490721584000-0500)/

标签 json asp.net-mvc json.net

在我的 ASP.Net MVC 项目中,使用 NewtonSoft json 反序列化器,我使用一个 json Web 服务以/Date()/格式发送日期。我收到的 json 为(显示许多数组元素中的第一个):

[
  {
    "Prop1": false,
    "Prop2": false,
    "TimeDtlList": [
      {
        "CustName": null,
        "tranDate": null,
        "startTime": "/Date(1490721584000-0500)/",
        "endTime": "/Date(1490734813000-0500)/",
      }
    ],
    "name": "Bill, Jack F.",
  }
]

在我的代码中,我使用 DateFormatHandling.MicrosoftDateFormat,但是我仍然收到错误:

Could not convert string to decimal: /Date(1490721584000-0500)/. Path '[0].times[0].startTime', line 1, position 337.

我正在使用以下方法反序列化对象:

JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings{DateFormatHandling = DateFormatHandling.MicrosoftDateFormat};
List<Times> timesList = JsonConvert.DeserializeObject <List<Times>>(text, microsoftDateFormatSettings);

我的模型类定义为:

public class Times
{
    public Boolean prop1 { get; set; }
    public Boolean prop2 { get; set; }
    public List<TimeDtl> TimeDtlList { get; set; }
    public String name { get; set; }        
}
public class TimeDtl
{
    public String CustName { get; set; }
    public DateTime? tranDate { get; set; }
    public Decimal? startTime { get; set; }
    public Decimal? endTime { get; set; }        
}

如何正确反序列化时间?

最佳答案

根据您的json它只是 Times 的对象不是List<Times>

string json = "{\"startTime\": \"/Date(1490721584000-0500)/\",\r\n\"endTime\": \"/Date(1490734813000-0500)/\"}";
dynamic stuff = JsonConvert.DeserializeObject(json);
Times result = stuff.ToObject<Times>();

您可以访问诸如

之类的值

result.startTime用于 ToObject 的文档你可以检查这个ToObject

编辑

所以根据你的新模型 json 应该是

var result = stuff.ToObject<List<Times>>();

并且在您的模型中,您需要更正类型

public Decimal? startTime { get; set; }
public Decimal? endTime { get; set; }   

public DateTime? startTime { get; set; }
public DateTime? endTime { get; set; }

startTimeendTime类型为DateTime

关于json - NewtonSoft Json 反序列化错误 - 无法将字符串转换为十进制 :/Date(1490721584000-0500)/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43144178/

相关文章:

ios - 解析我的 SWIFT 字典

java - 使用 Gson 进行对象字段反序列化

c# - 为用户创建头像上传表单

asp.net-mvc - 使用模型和 ViewData 项创建 ViewDataDictionary 的简写?

elasticsearch - 在ElasticSearch中序列化RegionInfo

javascript - 将 .json 文件中的数据加载到 Angular 中的工厂中

javascript - 如何做一个 HTML 选择表单,其中所选选项更新 JSON 值?

asp.net - ld+json 脚本和 Razor View 的编译错误

c# - Newtonsoft.JSON Mono Float反序列化异常

c# - 如何静态获取Enum值?