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

推荐教程

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

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 = "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;
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值