在对下图的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) { //循环取值 }
序列化
数据源为以下格式的文本文档
/**** 初始化定义 ****/ 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]去找到对应的值。
这是一个专门研究播放器的网站啊
学习了 谢谢分享