JSON序列化与解析之一

在对下图的JSON格式进行序列化和解析的时候遇到了一些困难,其中分组的名称是可变的,并且不仅仅局限于三个分组..
《JSON序列化与解析之一》

解析

以下代码仅提供思路,不做具体实现,有需要的看了自然懂..

        // 定义一个实体类
        public class TestFC
        {
                public string name { get; set; }
                public string[] source { get; set; }
        }
        //处理函数中的代码
        var varTemp = JsonConvert.DeserializeObject<Dictionary<string, List<TestFC>>>(sr);//sr为网络或这本地读取的字符串如上图
        foreach (var mt in varTemp)
        { 
                //循环取值
        }

序列化

数据源为以下格式的文本文档

《JSON序列化与解析之一》
以下同样只提供代码片段,同时使用了上面定义的实体类

    /**** 初始化定义 ****/
    List<string> listStrArr = new List<string>();  //定义泛型,用于存放动态的数组          
    TestFC tfc = new TestFC();  //实例化类
    tfc.name = "";
    tfc.source = listStrArr.ToArray();
    List<TestFC> tvFC2 = new List<TestFC>();    
    Dictionary<string, List<TestFC>> tvFC = new Dictionary<string, List<TestFC>>();
    
     /**** 在循环取值中实例化,并进行赋值 ****/
    foreach (string strtv in astrTV)  //其中astrTV为数据源文本文档所有行组成的数组..
    {
         //添加分组 - 此处省略一百万条代码
         tvFC2 = new List<TestFC>();    //
         tvFC.Add(strfz, tvFC2);    //strfz为分组名称

         //添加直播源 - 此处省略一百万条代码
         tfc = new TestFC();
         tfc.name = tvTitle;//添加频道名称
         listStrArr = new List<string>();
         listStrArr.Add(tvURL2);  //添加播放地址,因为涉及到同一个频道多个地址的情况,这边要特别的处理下,
         tfc.source = listStrArr.ToArray();  //把相同频道的直播源地址的集合转换为数组
         tvFC2.Add(tfc);  //完成一条直播源数据的添加
    }

     /**** 使用第三方工具进行序列化 ****/
     string strJson = JsonConvert.SerializeObject(tvFC);
     //END

Dictionary是一个泛型,他本身有集合的功能有时候可以把它看成数组
他的结构是这样的:Dictionary<[key], [value]>
他的特点是存入对象是需要与[key]值一一对应的存入该泛型,通过某一个一定的[key]去找到对应的值。

点赞
  1. 纺织知识说道:

    这是一个专门研究播放器的网站啊

  2. 2018最稳网赚项目说道:

    学习了 谢谢分享

发表评论

电子邮件地址不会被公开。 必填项已用*标注