none
c# winform里反序列化datetime类型出错 RRS feed

  • 问题

  • 错误提示是:反序列化对象.....DateTime内容"\/Date("2010-05-06 16:44:12")\/" 未按json的要求以 "\/Date(”开始并以")\/结束。

     

    c#里反序列化的类 date字段是 public DateTime getdate{get;set;}


    读取的json文件:(json文件是通过php的json_encode生成的。数字型和字符型都正确,就日期型出错)
    "getdate":"\\\/Date(\"2010-04-01 12:15:34\")\\\/"
    "getdate":"2010-04-01 12:15:34"   几种形式我都试过了,还是出现那个出错提示


    loveym
    2010年7月29日 1:55

全部回复

  • 你好!

         不好意思,我没有理解你的问题啊!请明确一下你的问题好吗?

          最好提供源代码!


    周雪峰
    2010年8月1日 9:28
    版主
  • 你好,我的部分代码如下
    要读取的json在一个php文件里(改文件是php里json_encode生成的)
    ------------------------------
    [{"tid":15074,"subject":"test1","dateline":"\\\/Date(2010-05-06 16:44:12)\\\/"},{"tid":15064,"subject":"test2","dateline":\\\/Date(2010-05-06 15:29:37)\\\/}]
    ------------------------------

    c#里先创建一个类
    ------------------------------
        [DataContractAttribute]
        public class MyNews
        {
            [DataMember]
            public int tid { get; set; }
            [DataMember]
            public string subject { get; set; }
            [DataMember]
            public DateTime dateline { get; set; }
        }
    ------------------------------

    反序列化的部分代码(出错的代码)
    ------------------------------
                        public List<MyNews> myNewsList = new List<MyNews>();
                        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<MyNews>));
                        MemoryStream mStream = new MemoryStream(Encoding.Default.GetBytes(wcStr));  //wcStr是抓过来的json数据,字符串类型
                        myNewsList = (List<MyNews>)serializer.ReadObject(mStream);
                        myNewsList.Reverse();
                        mStream.Close();
    ------------------------------

    错误提示:反序列化对象.....DateTime内容"\/Date("2010-05-06 16:44:12")\/" 未按json的要求以 "\/Date(”开始并以")\/结束。


    loveym
    2010年8月2日 1:05