cJSON详细剖析(九)----create_objects()/cJSON_AddItemToObject()函数

10 篇文章 0 订阅

这里我们针对test.c里面的create_objects()函数进行向下解析。

如上图框住的部分,我们就此来分析cJSON_AddItemToObject()函数。根据参数我们先分析cJSON_CreateString()函数。

cJSON_CreateString()

此函数在cJSON里面用了一行,为了更好的阅读,我把它按照正常的形式展开了。这段代码很简单,就是新建一个item的cJSON结构体指针,然后把string赋值给valuestring。最后返回该结构体指针。

我们回到cJSON_AddItemToObject()函数,我们继续跳转进去。

cJSON_AddItemToObject()

这个函数也比较简洁,就最后一行代码可能需要跳转进去看看是干什么的,因为我已经看过了,所以我把大概的意思写出来了。接下来我们看看是怎么实现的。

cJSON_AddItemToArray()

如下图,我把一些必要的注释写出来了,最后的suffix_object()函数就是将俩结点连接起来,我贴一下代码。

cJSON_AddItemToObject()

最后我们一步一步返回,回到了最开的cJSON_AddItemToObject()函数,也就明白这个函数时干什么用的了,无非就是在object这个链表的最后面加一个item结构体,且将string赋值给item->string,主要的是,这里使用的是深拷贝。

一写长了,我就担心写的不清不楚就像前面写的几篇博客一样,所以这个就到这结束了。如果有问题的话,欢迎大家留言,大家一起学习,一起搞学习。

 

ps: 这里增加一点的内容,因为我看了下后面的内容,发现许多都是重复的,新东西比较少,我就简单的把一些用到的其他函数一并看过,然后题目也就简单的改下吧。

我们往下翻就会看到cJSON_CreateStringArray()函数。

我们打开看看,其实是很简单的函数,如下图,一些注释写在了代码的后面。

也就是每个结点的保存值我们在上面有讲,就是调用cJSON_CreateString()函数嘛。所以很简单,后面就都是一些重复性的内容,我就不再一一解释了,在后面写总结的时候我再看看,哪些比较复杂的代码我们没有看的。差不多到此代码也就大概的看完了。花了差不多半个月的时间,刚好老板也没啥事情交代,看代码还是很爽的嘛,哈哈哈

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值