反序列化的详解

怎样序列化这个字符串呢?

 string jsonText2 = "{\"Specificlocation\":[{\"name\":\"zj11\",\"age\":\"22\"},{\"name\":\"z71\",\"age\":\"32\"},{\"name\":\"z1\",\"age\":\"42\"},{\"name\":\"zj81\",\"age\":\"12\"},{\"name\":\"zjy1\",\"age\":\"72\"},{\"name\":\"zj31\",\"age\":\"52\"},{\"name\":\"zj61\",\"age\":\"32\"},{\"name\":\"zjt1\",\"age\":\"52\"},{\"name\":\"zj14\",\"age\":\"32\"}]}";

1.创建用户类:

 public class userInfo
    {
        public string name { get; set; }
        public double age { get; set; }

    }

里面的字段需要和字符串的字段一致,可以多一些里面的字段,但是显示的就没有该字段的值,也可以少字段,只要符合字符串里的字段都可以实现,字段的。

2.序列化数组对象:

  JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText2);//或者JObject jo = JObject.Parse(jsonText);
 string zj1 = jo["Specificlocation"].ToString();  //输出 "[{\"name\":\"zj11\",\"age\":\"22\"},{\"name\":\"z71\",\"age\":\"32\"},{\"name\":\"z1\",\"age\":\"42\"},{\"name\":\"zj81\",\"age\":\"12\"},{\"name\":\"zjy1\",\"age\":\"72\"},{\"name\":\"zj31\",\"age\":\"52\"},{\"name\":\"zj61\",\"age\":\"32\"},{\"name\":\"zjt1\",\"age\":\"52\"},{\"name\":\"zj14\",\"age\":\"32\"}]}"
 
 List < userInfo > user = new JavaScriptSerializer().Deserialize<List<userInfo>>(zj1);
 foreach (var item in user)
            {
                Console.WriteLine("用户名:{0},性别:{1}",item.name,item.age);
            }

在这里插入图片描述
3.序列化对象:

  JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText2); //或者JObject jo = JObject.Parse(jsonText);
 string zj1 = jo["Specificlocation"][0].ToString(); //{\"name\":\"输出:zj11\",\"age\":\"22\"}
 
userInfo  user = new JavaScriptSerializer().Deserialize<userInfo>(zj1);

Console.WriteLine("用户名:{0},性别:{1}",user .name,user.age);
  

输出结果:
在这里插入图片描述


版权声明:本文为weixin_45932157原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。