c 语言 json序列化,JSON序列化与解析之一

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

bcd2bbcbc523a94785b7104d1596b369.png

解析

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

public class TestFC

{

public string name { get; set; }

public string[] source { get; set; }

}

//处理函数中的代码

var varTemp = JsonConvert.DeserializeObject>>(sr);//sr为网络或这本地读取的字符串如上图

foreach (var mt in varTemp)

{

//循环取值

}

序列化

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

edaa42e639f3153e52b365b05de2a897.png

以下同样只提供代码片段,同时使用了上面定义的实体类/**** 初始化定义 ****/

List listStrArr = new List(); //定义泛型,用于存放动态的数组

TestFC tfc = new TestFC(); //实例化类

tfc.name = "";

tfc.source = listStrArr.ToArray();

List tvFC2 = new List();

Dictionary> tvFC = new Dictionary>();

/**** 在循环取值中实例化,并进行赋值 ****/

foreach (string strtv in astrTV) //其中astrTV为数据源文本文档所有行组成的数组..

{

//添加分组 - 此处省略一百万条代码

tvFC2 = new List(); //

tvFC.Add(strfz, tvFC2); //strfz为分组名称

//添加直播源 - 此处省略一百万条代码

tfc = new TestFC();

tfc.name = tvTitle;//添加频道名称

listStrArr = new List();

listStrArr.Add(tvURL2); //添加播放地址,因为涉及到同一个频道多个地址的情况,这边要特别的处理下,

tfc.source = listStrArr.ToArray(); //把相同频道的直播源地址的集合转换为数组

tvFC2.Add(tfc); //完成一条直播源数据的添加

}

/**** 使用第三方工具进行序列化 ****/

string strJson = JsonConvert.SerializeObject(tvFC);

//END

Dictionary是一个泛型,他本身有集合的功能有时候可以把它看成数组

他的结构是这样的:Dictionary

他的特点是存入对象是需要与[key]值一一对应的存入该泛型,通过某一个一定的[key]去找到对应的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值