Ubuntu16.04下C语言数据生成JSON格式文件

 背景:在上一篇博客中,我成功尝试了用cJSON在win下VS2019环境中进行JSON格式的生成和解析。那cJSON这个库在Ubuntu16.04环境下能不能用呢?我在Ubuntu下操作运行,抛出cJSON_CreateObject未定义标识符的错误。

第一步:我上网搜索此问题,可能的原因是因为编译顺序错误,但在Ubuntu下,具体怎么编译C程序文件的细节我一概不知,特别是对于这种网上下载的深度学习模型,不知道怎么设置我的编译顺序;

第二步:我上网找在Linux下能用的第三方库,网上有json-c, jansson,但这两个都在安装过程中遇到了找不到指定文件目录的错误;

第三步:我在网上找有没有将该深度学习模型的检测结果封装为json格式文件的项目,很幸运找到一篇。成功解决了我的问题。

我也知道了,cJSON文件同时可以在Ubuntu16.04环境下使用,不过在Ubuntu下由于我的模型编译是通过Makefile文件设置编译的,因此需要在Makefile文件中设置cJSON这一项。


JSON格式验证工具:

http://www.bejson.com/

Makefile文件初认识:

https://blog.csdn.net/u012435142/article/details/82957892

项目链接:

https://www.cnblogs.com/tla001/p/7008230.html


cJSON *res=cJSON_CreateObject();
cJSON *content,*rec;
cJSON_AddItemToObject(res,"content",content=cJSON_CreateArray());

cJSON_AddItemToObject(content,"rec",rec=cJSON_CreateObject());
cJSON_AddStringToObject(rec,"class",names[class]);
cJSON_AddNumberToObject(rec,"prob",dets[i].prob[class]*100);  

char *resStr=cJSON_Print(res);
cJSON_Delete(res);
FILE *fp=fopen("res.json","wb");
fwrite(resStr,1,strlen(resStr),fp);
fclose(fp);

其中,class, prob 对应我的检测结果。

输出的res.json文件内容:

{
    "content":    [{
            "class":    "POWER-ON",
            "prob":    99.6324234008789
        }]
}

通过JSON格式在线验证无误。接下来我将在此基础上进行修改。


通过该项目,我认识到自己对C语言的短板,网上说cJSON源码是很到的C语言学习资料,这次项目完事后自己打算用半个月时间学习cJSON源码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值