关键词搜索

源码搜索 ×
×

C#中JSON的序列化和反序列化取值示例

发布2022-03-25浏览710次

详情内容

推荐教程

c# 2015 & 2017 视频教程|xin3721自学网c#入门经典视频教程icon-default.png?t=M276https://www.jxasp.com/blog

C#中JSON的序列化和反序列化取值示例

1.首先需要引用Newtonsoft.Json.dll文件(代码引用using Newtonsoft.Json和using Newtonsoft.Json.Linq;)

2.定义两个类PerSon和_Name,代码如下:(如何创建多个根节点的JSON字符串可以定义多个嵌套类的方式,参考下面_Name类)

        private class Person
        {
            public string Age { get; set; }//年龄
            public string Weight { get; set; }//体重
            public string Height { get; set; }//身高
            public string Sex { get; set; }//性别

            public _Name Name = new _Name();//名字类(有大名和小名)
        }

        public class _Name
        {
            public string FirstName { get; set; }//大名
            public string SecondName { get; set; }//小名
        }

a.序列化代码如下(效果图见代码后)

        private void button1_Click(object sender, EventArgs e)
        {
            Person per = new Person();
            per.Name.FirstName = "小白";
            per.Name.SecondName = "小红";
            per.Age = "https://files.jxasp.com/image/20";
            per.Weight = "80kg";
            per.Height = "168cm";
            per.Sex = "男";

            string js = JsonConvert.SerializeObject(per);//序列化

            textBox1.Text = js;
        }

b.反序列化代码取对应节点的值如下(效果图见后)

反序列化的时候,其实可以把JSON字符串作为一个XML文档来理解,多个大括号包含的相当于XML的主体到子节点到根节点的一个意思,这里我们把Name的值取出来,可以看出来下面有我们定义的两个根节点大名和小名

        private void button2_Click(object sender, EventArgs e)
        {
            var jobject = JObject.Parse(textBox1.Text);
            var weight = jobject["Name"].ToString();
            textBox1.Text = weight;
        }

c.取出根节点的值

我们在上面已经取出了Name节点的值,我们这里可以对这个Name在做一次取值的操作

        private void button3_Click(object sender, EventArgs e)
        {
            var jobject1 = JObject.Parse(textBox1.Text);
            var b = jobject1["FirstName"].ToString();
            textBox1.Text = b;
        }

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载