json-c学习之路
学习json-c
修诡道的马前卒
世事洞穿而寡言,名利看淡而重学!
个人邮箱:yanzhang.guo@qq.com
展开
-
(json-c学习11)解析嵌套的数组
其它什么头文件,编译什么的看前面的部分就好。代码如下:661 void ParsingTest(void)662 {663 int fatherLen = 0;664 int sonLen = 0;665 const char *str = "[{\"gp\":1,\"body\":[{\"ln\":1,\"sd\":2},{\"ln\":2,\"sd\":3}]},{\"gp\":3,\"body\":[{\"ln\":6,\"sd\":7},{\"ln\":8.原创 2020-05-22 17:42:50 · 969 阅读 · 0 评论 -
(json-c学习10)交叉编译json-c库(arm64位)
下载地址:https://github.com/json-c/json-c1,下载,解压,不用多说;2,配置,这个地方就要注意了运行的是:json-c-master# ./configure CC=aarch64-linux-gnu-gcc就是修改了CC,不然默认是gcc,就不是交叉编译了。3,编译-make4,安装-make install注意,这里...原创 2020-03-30 18:21:33 · 1542 阅读 · 0 评论 -
(json-c学习9)读写json格式的文件
读写的文件,有普通的json格式的文件,还有数组形式的json格式的文件。读普通的文件使用:guoyanzhang@debian:~/test$ cat test.json{"group":1,"test":2}读数组形式的文件使用:guoyanzhang@debian:~/test$ cat test1.json[{"group":1,"test":2},{"group":2,"test":3},{"group":12,"test":13},{"group":12,"test":13}]原创 2020-05-21 10:40:14 · 735 阅读 · 0 评论 -
(json-c学习8)关于Segmentation fault的一个问题
开始的时候,我以为是json_tokener_parse导致的Segmentation fault的问题,后来问作者,发现是json_object_object_foreach的问题。因为如果是封装成一个函数给别人用,别人可能会传递一个非json的字符串过来,那程序就会崩了,为了防止程序崩,要加个判断。我在github上问作者的链接:https://github.com/json-c/json-c/issues/623解决办法,添加了425-430共6行。407 void TestSeg.原创 2020-05-20 09:06:17 · 764 阅读 · 0 评论 -
(json-c学习7) linux c语言释放json对象,防止内存泄漏
实际项目中发现Json-C用法不当导致的内存泄露、踩内存问题,大都是因为不清楚下面几个接口的用法。以下分析基于https://github.com/json-c/json-c( 0.12.1 release)。1. json_object_new_object生成的对象要不要释放int main(int argc, char **argv){ struct json_object* obj; mtrace(); obj = json_object_new_object();...转载 2020-05-09 16:54:03 · 3102 阅读 · 0 评论 -
(json-c学习6) linux c语言解析json对象和子对象的组合(纯代码)
头文件什么的都在上篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:334 void ParsingBodyJsonFuncton(void)335 {336 //封装成如下形式的json内容:337 /*338 {339 "loop_number": 1,340 "sensor_address:1,341 "body":342 .原创 2020-05-09 10:28:37 · 496 阅读 · 1 评论 -
(json-c学习5) linux c语言封装json对象和子对象的组合(纯代码)
头文件什么的都在上篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:287 void PkgBodyJsonFuncton(void)288 {289 //封装成如下形式的json内容:290 /*291 {292 "loop_number": 1,293 "sensor_address:1,294 "body":295 ..原创 2020-05-08 19:11:38 · 360 阅读 · 0 评论 -
(json-c学习4) linux c语言封装json对象和数组的组合(纯代码)
头文件什么的都在上篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:238 void PkgBodyArrayFunction(void)239 {240 //封装成如下形式的json内容:241 /*242 {243 "loop_number": 1,244 "sensor_address:1,245 "body":246 .原创 2020-05-08 18:58:38 · 572 阅读 · 0 评论 -
(json-c学习3) linux c语言封装json单个对象(纯代码)
头文件什么的都在上篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:210 void PkgJsonFunction(void)211 {212 //封装成如下形式的json内容:213 /*214 {215 "loop_number": 1,216 "sensor_address": 1217 }218 */219 .原创 2020-05-08 17:58:43 · 331 阅读 · 0 评论 -
(json-c学习2) linux c语言封装json数组(纯代码)
头文件什么的都在上篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:170 void PkgArrayFunction(void)171 {172 //封装成如下形式的json内容:173 /*174 [175 {"loop_number": 1, "sensor_address":1},176 {"loop_number": 1, "sensor_address":1},177 .原创 2020-05-08 17:44:25 · 375 阅读 · 0 评论 -
(json-c学习1) linux c语言解析json数组(纯代码)
1 #include "json.h" 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 6 #define OR_GROUP "group" 7 #define LOOP_NUMBER "loop_number" 8 #define SENSOR...原创 2020-05-08 15:16:14 · 1821 阅读 · 0 评论