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最稳网赚项目 说道:

    学习了 谢谢分享