C#中的Json序列化

核心思想:

  利用nuget下载“Newtonsoft.Json”包,调用其中的方法可以json化各种对象。反序列化调用“JsonConvert.DeserializeObject<DataTable>()”方法。

  例:

string str_json;
            List<Person> ps;
            //初始化数据库对象
            var d1 = new myDatabase();
            //初始化一个普通类对象
            var p1 = new Person() { Xm = "张大力", Nl = 20 };
            //初始化一个DataTable对象
            DataTable dt = new DataTable();
            dt.Columns.Add("Age", Type.GetType("System.Int32"));
            dt.Columns.Add("Name", Type.GetType("System.String"));
            dt.Columns.Add("Sex", Type.GetType("System.String"));
            dt.Columns.Add("IsMarry", Type.GetType("System.Boolean"));
            for (int i = 0; i < 4; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Age"] = i + 1;
                dr["Name"] = "Name" + i;
                dr["Sex"] = i % 2 == 0 ? "男" : "女";
                dr["IsMarry"] = i % 2 > 0 ? true : false;
                dt.Rows.Add(dr);
            }
            //分别序列化输出结果
            str_json =JsonConvert.SerializeObject(d1.t1);
            Console.WriteLine(str_json);
            Console.WriteLine();
            //随便反序列化一个
            ps = JsonConvert.DeserializeObject<List<Person>>(str_json);
            str_json = JsonConvert.SerializeObject(p1);
            Console.WriteLine(str_json);
            Console.WriteLine();
            str_json = JsonConvert.SerializeObject(dt);
            Console.WriteLine(str_json);
            Console.WriteLine();
            //输出反序列化的东西
            foreach (var item in ps)
            {
                Console.WriteLine($"{item.Xm}\t{item.Nl}");
            }
            Console.ReadKey();