json作为通信报文

博客讨论了通信报文的两种格式,强调了JSON作为通信格式的灵活性和嵌套性,将其与传统的报文格式和XML进行对比。内容提到了JSON基于对象的多叉树结构,并且在C语言中通过链表数据结构实现。此外,还提及了json_c库中对象操作的特性。
摘要由CSDN通过智能技术生成

通常报文格式一般分为两种,一种是报文类型标识,长度,校验。还有一种是报文类型标识,结束标识,校验。

第一种有利于接收方进行报文解析,应为首先能知道将要接收的报文长度。但是第一类报文的扩展性,灵活性和嵌套性比较差,类似tcpip协议头等传统协议。

第二种报文对于接收方来说比较不好处理,需要不停的判断结束符和校验,但是报文灵活,可以随意嵌套,类似于json和xml语言。


json或者xml其实质是不同类型的对象组成的多叉树,在c语言用的链表数据结构构建。

json new创建的要手动put,put会递归的put一遍子树,get的要手动put,因为会增加引用计数。


json_object_object_add会先删除同key的元素,再添加key的元素。

json_c库的一些对象:


struct json_object
{
  enum json_type o_type;  //类型
  json_object_delete_fn *_delete; //释放函数
  json_object_to_json_string_fn *_to_json_string; //json转str函数
  int _ref_count; //引用计数
  struct printbuf *_pb; // 打印buf
  union data {   //真正的数据 联合体
    boolean c_boolean; //bool型
    double c_double;  //double 型
    int64_t c_int64; //int64型
    struct lh
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值