Repository files navigation
纯c的json工具,包括创建,解析并打印
test可执行程序包含调试信息
test1可执行程序不包含调试信息
纯c靠指针能完成大部分事情
memset(node, 0, sizeof(cJSON)) // 其中node是由malloc申请到的cJSON指针
不可以返回局部变量的引用或指针,但可在函数内申请堆上的内存
malloc申请内存有可能失败,所以失败时应该返回;传进来的东西不符合预期要加判断,由此保证程序的健壮性
const char* in ; in && *in 指针不为空且指针所指不为空 0 '\0'
strncmp(value, 'null', 4) // 比较前几个字符,相同为0
parse_string中计算应该分配的指针大小,后*ptr2++=*ptr++;
'9'-'0' 可以得出字符对应int
array中装了多个同类型的item,这些item形式上为双向链表
object中每一个item都有name,还有value; parse_value可以将value传到item上
解析时指针往后移动,parse_value返回指针的位置
strcpy(out, 'null')
memcpy(copy, str, len) // 把str中len字节复制到copy所指向的地址里
sprintf
打印就是将item的name和value写到输出字符串上,然后打印字符串
memset(entries, 0, sizeof(char*)*numentries)给二级指针初始化
entries=(char**)cJSON_malloc(numentriessizeof(char )); // 分配这么多内存给entries指针,这个指针里存放多个一级指针
打印object或array时,由于形式上有多个child,所以会保存每个child,用二级指针保存
之后再统一整合各个child的输出
pow2gt
printbuffer
ensure
update
parse_hex4
firstByteMark
cJSON_PrintUnformatted
cJSON_PrintBuffered
cJSON_Minify
待补充
待补充
待补充
下次自己写一个
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.