C#JSON格式的写入和解析

  • Post author:
  • Post category:其他


  • JSON格式的案列如下
    在这里插入图片描述


    https://www.json.cn/


    可以在这个网址更清楚的查看JSON数据,另外还可以在这直接生成实体类,这里就不演示了

  • 实体类

 public class Jsondata//实体类1
    {

        public string Spec { get; set; }
        public string Uplimit { get; set; }
        public string Dnlimit { get; set; }
        public string Max { get; set; }
        public string Min { get; set; }

        public List<TestData> TestValue { get; set; }


    }

   public class TestData//实体类2
   {
       public string ItemCode { get; set; }
       public string Value { get; set; }
   }
  • 写入JSON格式数据
            //引用Newtonsoft.Json
            //using Newtonsoft.Json;
            Jsondata js = new Jsondata();//实体类1
            //赋值
            js.Spec = "10";
            js.Uplimit = "15";
            js.Dnlimit = "5";
            js.Max = "12";
            js.Min = "8";

            List<string> dataAry = new List<string>();
            for (int i = 0; i < 3; i++)
            {
                dataAry.Add(new Random().Next(1, 10).ToString());//得到3个随机数
            }
            js.TestValue = new List<TestData>();//初始化
            for (int i = 0; i < dataAry.Count + 1; i++) //测试数据
            {
                TestData d = new TestData();//实体类2
                if (i < dataAry.Count)
                {
                    d.ItemCode = "值" + (i + 1);
                    d.Value = "22";
                    js.TestValue.Add(d);
                }
            }
            string strJson = JsonConvert.SerializeObject(js);//序列化转换成JSON格式
            textBox2.Text = strJson;

就得到如下的这一堆数据:

{“Spec”:“10”,“Uplimit”:“15”,“Dnlimit”:“5”,“Max”:“12”,“Min”:“8”,“TestValue”:[{“ItemCode”:“值1”,“Value”:“22”},{“ItemCode”:“值2”,“Value”:“22”},{“ItemCode”:“值3”,“Value”:“22”}]}

  • JSON格式的解析

    得到数据后下一步就是解析取其中的内容
 //解析
            Jsondata rejs = JsonConvert.DeserializeObject<Jsondata>(strJson);//反序列化  

            string spc= rejs.Spec;//实体类1的值直接点出来就行了

            //实体类2的值则需要循环遍历
            List<string> list = new List<string>();
            foreach (TestData item in rejs.TestValue)
            {
                list.Add(item.ItemCode); 
                list.Add(item.Value);
            }



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