cson使用实例声明结构体:/** 项目结构体 */struct project{ int id; char *name;};/** 仓库结构体 */struct hub{ int id; char *user; struct project *cson;};定义数据模型:对每一个需要使用cson的结构体,都需要定义相对应的数据模型
/** 项目结构体数据模型 */csonmodel projectmodel[] ={ cson_model_obj(struct project), cson_model_int(struct project, id), cson_model_string(struct project, name),};/** 仓库结构体数据模型 */csonmodel hubmodel[] ={ cson_model_obj(struct hub), cson_model_int(struct hub, id), cson_model_string(struct hub, user), cson_model_struct(struct hub, cson, projectmodel, sizeof(projectmodel)/sizeof(csonmodel))};使用cson解析:只需要定义好数据模型,就可以使用cson读json进行序列化和反序列化
void csondemo(void){ char *jsondemo = {id: 1, user: letter, cson: {id: 2, name: cson}}; /** 解析json */ struct hub *phub = csondecode(jsondemo, hubmodel, sizeof(hubmodel)/sizeof(csonmodel)); printf(hub: id: %d, user: %s, project id: %d, project name: %srn, phub- >id, phub- >user, phub- >cson- >id, phub- >cson- >name); /** 序列化对象 */ char *formatjson = csonencodeformatted(phub, hubmodel, sizeof(hubmodel)/sizeof(csonmodel)); printf(format json: %srn, formatjson); /** 释放结构体对象 */ csonfree(phub, hubmodel, sizeof(hubmodel)/sizeof(csonmodel)); /** 释放序列化生成的json字符串 */ csonfreejson(formatjson);}运行结果:hub: id: 1, user: letter, project id: 2, project name: csonformat json: { id: 1, user: letter, cson: { id: 2, name: cson }}可以看到,无论是解析json,还是序列化结构体到json,在使用cson的情况下,都只需要一行代码就可以解决,同样的操作,在使用原生cjson的情况下,你可能需要多次判断,解析元素。
大联大品佳集团推出NXP整合式智能门锁解决方案,提供更便捷、更安全的智能生活体验
长虹空调2019年抢跑市场 率先实现开门红
关于Graphcore IPU设计背后的思考
PCB铜皮的面积和热阻是什么
消防应急灯具有哪些技术要求?
CSON使用实例:定义数据模型
基于SEPIC变换器的高功率因数LED照明电源设计
联想Z5Pro评测 在各个方面都用最好的标准打响了价格战
投影机的标准分辨率
数字孪生:如何撑起一个万亿市场的产业变革
2023年SpaceX目标是每年发射火箭超70次
欧盟批准人工心脏投入商用 暂定售价 15 万欧元
恒压控制芯片激或升降压电源拓扑XP3358
Cheetah 3猎豹机器人,一款不靠视觉就能移动的机器人
区块链如何助力游戏化程序技术
为什么OLED不被看好
图形处理器是不是独立显卡
安森美半导体推出下一代风机电机驱动器 以简化和加速家电设计
电子设备中常用的过压保护电路_撬棍电路
行李箱尾盖灯存安全隐患,广汽本田召回这批进口讴歌MDX