繁体   English   中英

传递带有日期的数组,然后在ASP.Net MVC Controller上反序列化

[英]Pass an Array with date and Deserialize it on ASP.Net MVC Controller

我对我的问题进行了无数的研究,但没有给出我需要的答案。.请帮助我在该阵列上修复反序列化。

我正在发送控制器的数组数据:

$room_records_to_save.push({
   RoomId: anr_id,
   PaxAdult: anr_adult,
   PaxChild: anr_child,
   DateFrom: anr_dfrom,
   DateTo: anr_dto,
   Id: cnt
});

它生成的数组

{"RoomId":"5","PaxAdult":"2","PaxChild":"1","DateFrom":"03/20/2015","DateTo":"03/21/2015","Id":1},{"RoomId":"1","PaxAdult":"2","PaxChild":"1","DateFrom":"3/19/2015","DateTo":"3/19/2015","Id":2}

我的控制器模式:

public bool SaveReservationInq(string rooms) {
   List<ReservationOnlineRoom> rm = JsonHelper.Deserialise<List<ReservationOnlineRoom>>(rooms);

   foreach (var d in rm) {
      ReservationOnlineRoom.Create(d);
   }

   return true;
}

这是我的JsonHelper.cs类

public class JsonHelper {
   public static T Deserialise<T>(string json) {
      T obj = Activator.CreateInstance<T>();
      using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) {
         DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
         obj = (T)serializer.ReadObject(ms);
            return obj;
        }
    }
}

这是模型ReservationOnlineRoom.cs

public class ReservationOnlineRoom {
    public int ReservationOnlineID { get; set; }
    public int RoomId { get; set; }
    public DateTime DateFrom { get; set; }
    public DateTime DateTo { get; set; }
    public int PaxAdult { get; set; }
    public int PaxChild { get; set; }
    public string Concern { get; set; }
}

我的问题是在反序列化字符串空间,并且该错误在行下面的JsonHelper.cs上弹出

obj = (T)serializer.ReadObject(ms);

而它给我的错误是

“在反序列化类型为System.Collections.Generic.List`1 [[AMADA.Business.ReservationOnlineRoom,AMADA.Business,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]的对象时出错。]。DateTime内容' 2015-03-17T16:00:00.000Z'的开头不是JSON所需的'/ Date('开头,''/'结尾。”

任何帮助将被赞赏...

您应该使用Newtonsoft.Json

尝试这个

var array = JArray.Parse(jsonstringdata);

该数组将为您提供反序列化数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM