cJSON详细剖析(九) 您所在的位置:网站首页 item与object区别 cJSON详细剖析(九)

cJSON详细剖析(九)

2023-08-08 08:01| 来源: 网络整理| 查看: 265

这里我们针对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()函数嘛。所以很简单,后面就都是一些重复性的内容,我就不再一一解释了,在后面写总结的时候我再看看,哪些比较复杂的代码我们没有看的。差不多到此代码也就大概的看完了。花了差不多半个月的时间,刚好老板也没啥事情交代,看代码还是很爽的嘛,哈哈哈

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有