日期:2014-05-17  浏览次数:20883 次

Json转换成对象问题
想把Json转换成对象,在网上找了资料,调试老是提出错误(如下),这是为什么?
An unhandled exception of type 'System.Runtime.Serialization.InvalidDataContractException' occurred in System.Runtime.Serialization.dll

Additional information: 无法序列化类型“JsonTest.Student”。可以考虑使用 DataContractAttribute 属性对其进行标记,以及使用 DataMemberAttribute 属性标记所有想要序列化的该类型的成员。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。


代码如下:


 class Student
    {
        private string _Name;
        private int _Age;

        public Student(string name, int age)
        {
            _Name = name;
            _Age = age;
        }

        public string Name
        {
            set { _Name = value; }
            get { return _Name; }
        }

        public int Age
        {
            set { _Age = value; }
            get { return _Age; }
        }
    }

 class Program
    {
        static void Main(string[] args)
        {
            System.Runtime.Serialization.Json.DataContractJsonSerializer json = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Student));
            using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes("{\"Age\":20,\"Name\":\"张三\"} ")))
            {
                Student stu = (Student)json.ReadObject(stream);
                Console.Write(string.Format("name:{0},age:{1}", stu.Name, stu.Age));
            }
        }
    }

------解决方案--------------------
加上[DataContract]看看
------解决方案------------------