Ubuntu下配置cJSON库

本文档详细介绍了在Ubuntu操作系统上配置cJSON库的步骤,包括下载源码、编译安装以及在项目中引用cJSON库的方法,旨在帮助开发者在Ubuntu环境下顺利进行C/C++项目的JSON数据处理。

0. 准备工作
    github 官方地址是 https://github.com/DaveGamble/cJSON
    安装 环境是 Ubuntu 20.04。需要先安装cmake。 apt  install cmake 
    
1. 具体操作如下  在linux上找个地方 
    git clone https://github.com/DaveGamble/cJSON.git
    cd cJSON/
    mkdir build
    cd build/
    cmake ..
    make
    make install
    执行完上述命令后,
    cJSON.h 头文件会安装在 /usr/local/include/cjson 目录下。
    libcjson.so 库文件会安装在 /usr/local/lib 目录下。
2. 配置下变量
     还需要将/usr/local/lib目录添加到 /etc/ld.so.conf 文件中,
     vi  /etc/ld.so.conf   然后添加
     include /usr/local/lib
     保存后,执行
     /sbin/ldconfig
    否则程序在运行时会报 
     error while loading shared libraries: libcjson.so.1: cannot open shared object file: No such file or directory 错误。
    
3. 程序编译测试
     #include <stdio.h>
     #include <stdlib.h>
     #include "cjson/cJSON.h"
    int main(void)
    {   
        char *json_data = NULL;
        char *data = "{\"love\":[\"LOL\",\"Go shopping\"]}";
        //从缓冲区中解析出JSON结构
        cJSON * json= cJSON_Parse(data);
     
        //将传入的JSON结构转化为字符串 并打印
       json_data = cJSON_Print(json);
       printf("data:%s\n", json_data);
      
         json = cJSON_CreateObject();
         cJSON_AddStringToObject(json, "name", "lilei");
         cJSON_AddStringToObject(json, "sex", "man");
         cJSON_AddNumberToObject(json, "age", 18);
         cJSON_AddItemToObject(json,"love",array=cJSON_CreateArray());
        cJSON_AddItemToArray(array,cJSON_CreateString("LOL"));
        cJSON_AddItemToArray(array,cJSON_CreateString("NBA"));
        cJSON_AddItemToArray(array,cJSON_CreateString("Girls"));
        cJSON_AddNumberToObject(json,"score",61);
        cJSON_AddStringToObject(json,"address","shanghai");
        cJSON_AddItemToObject(json,"name",cJSON_CreateString("韩梅梅"));
        cJSON_AddStringToObject(json, "sex", cJSON_CreateString("girl"));
        // cJSON_AddNumberToObject(json,"age",cJSON_CreateNumber(17));
        cJSON_AddNumberToObject(json,"age",17);
        cJSON_AddItemToObject(json,"love",array=cJSON_CreateArray());
        cJSON_AddItemToArray(array,cJSON_CreateString("BOOK"));
        cJSON_AddItemToArray(array,cJSON_CreateString("Music"));
        cJSON_AddItemToArray(array,cJSON_CreateString("Go shopping"));
        cJSON_AddNumberToObject(json,"score",99);
        cJSON_AddStringToObject(json,"address","beijing");
        
        /* 注意 cJSON_AddItemToObject 和 cJSON_AddStringToObject 的区别 */
        cJSON_AddStringToObject(json, "name", "小红"); 
        cJSON_AddStringToObject(json, "sex", "female"); 
        cJSON_AddNumberToObject(json, "age", 18); 
        cJSON_AddItemToObject(json,"love",array = cJSON_CreateObject()); 
        cJSON_AddItemToObject(array, "爱好1", cJSON_CreateString("LOL")); 
        cJSON_AddItemToObject(array, "爱好2", cJSON_CreateString("NBA")); 
        cJSON_AddStringToObject(array, "爱好3", cJSON_CreateString("Girls")); 
        cJSON_AddNumberToObject(json,"score",81); 
        cJSON_AddStringToObject(json,"address","hk");
         json_data = cJSON_Print(json);
         printf("\n***************************\n%s\n", json_data);
  
         //将JSON结构所占用的数据空间释放
         free(json_data);
         cJSON_Delete(json);
         return 0;
    }
    

 

     编译  :   gcc -o testjson -g testJson.c -lcjson -lm
     执行  :   ./testjson 
      
      
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值