DataContractJsonSerializer - Deserializing DateTime within List<object>

后端 未结 4 670
情书的邮戳
情书的邮戳 2020-12-01 12:58

I\'m having trouble using the System.Runtime.Serialization.Json.DataContractJsonSerializer class to deserialize DateTime instances contained within a List

4条回答
  •  执笔经年
    2020-12-01 13:47

    You could convert DateTime.Now to a string before serialization and
    convert it back to DateTime after deserialization.

    Conversion to string by:

    string dateAsString = Convert.ToString(DateTime.Now);
    

    Conversion back to DateTime after deserialization:

    DateTime dateTime = Convert.ToDateTime(deserializedList[4]);
    

    So the whole code would be like:

      string dateAsString = Convert.ToString(DateTime.Now);
      var list = new object[] { 27, "foo bar", 12.34m, true, dateAsString };
    
      var serializer = new DataContractJsonSerializer(typeof (List));
    
      using (MemoryStream ms = new MemoryStream())
      {
        serializer.WriteObject(ms, list);
        ms.Position = 0;
        var deserializedList = serializer.ReadObject(ms) as List;
        DateTime dateTime = Convert.ToDateTime(deserializedList[4]);
      }
    
        

    提交回复
    热议问题