ubuntu安装c语言,ubuntu下安装与使用json-c(原创)

本文档详细介绍了如何在Ubuntu16.04LTS系统中通过git和apt-get两种方式安装json-c库。首先,通过git克隆json-c的GitHub仓库并执行autogen.sh脚本来配置和安装,然后编译和运行测试程序以确保安装成功。此外,还提供了如何通过apt-get安装libjson0-dev和libjson0的步骤。安装完成后,可以在相应目录下查看json头文件和库文件。同时,文章还介绍了json-c的一些基本API,如json_object_object_get_ex和json_object_put等,用于C语言中处理JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu 16.04 LTS 安装json-c

json-c适用于开发人员使用c语言对json的编程。

安装json-c

1.通过git安装,,json-c的github官网:

官网有详细的安装教程,这里我挑出ubuntu的安装例子。

若之前你的ubuntu系统没有安装git工具,请先执行下面的命令,安装git工具。

sudo apt installgitsudo apt installautoconf automake libtoolsudo apt install valgrind # optional

autoconf,automake,libtool是后面安装json-c要使用的包。

上述包安装完成后,执行下面的命令,获取json-c,执行sh脚本。

git clone https://github.com/json-c/json-c.git

cd json-csh autogen.sh

执行sh后,编译和安装 json-c

./configure # --enable-threadingmake

make install

json-c安装完成后,执行下面的命令,编译运行test测试程序(To build and run the test programs)。

makecheckmake USE_VALGRIND=0 check # optionally skip using valgrind

2.  通过Ubuntu 的 apt-get 安装

sudo apt-get install libjson0-dev libjson0

上述两种方法安装完成后,

在:

ls /usr/local/include/json/#安装成功,出现json相关头文件ls /usr/local/lib/ #安装成功,出现json相关的库文件

编译使用json库的源文件时,需要指定头文件目录,JSON库所在目录,使用c99标准,告知程序使用的是哪个动态库。

如下:

gcc -o json-demo -g json-demo.c -std=c99 -I/usr/include/json -L/usr/local/lib/ -ljson

更改配置文件,指定库所在目录

vi /etc/ld.so.conf

在文件中加入   include /usr/local/lib/

json-c的使用

1.json-c的api介绍:

1 /*

2 该函数被弃用,请用 json_object_object_get_ex3 */

4

5 struct json_object* json_object_object_get(struct json_object* obj, const char *key)

1 /*

2 从obj实例中获取键key对应的json对象,并将找到的json对象指针存放到value中,3 该函数不会改变引用计数4 成功返回TRUE5 失败返回FALSE6 */

7 json_bool json_object_object_get_ex(struct json_object* obj, const char *key, struct json_object **value);

1 /*增加obj的引用计数*/

2 struct json_object* json_object_get(struct json_object *obj);3

4 /*减少obj的引用计数,当引用计数为0时,释放obj实例所占用的内存*/

5 int json_object_put(struct json_object *obj);

1 /*

2 检查obj是否是给定的类型 type是下列之一:3 json_type_null (i.e. obj == NULL),4 json_type_boolean,5 json_type_double,6 json_type_int,7 json_type_object,8 json_type_array,9 json_type_string,10 */

11

12 int json_object_is_type(struct json_object *obj, enum json_type type);

1 /*

2 获取obj类型3 */

4 enum json_type json_object_get_type(struct json_object *obj);

1 /*

2 将obj实例转化成一个json格式的字符串3 等同于json_object_to_json_string_ext(obj, JSON_C_TO_STRING_SPACED)4 返回一个json格式的字符串指针5 */

6

7 const char* json_object_to_json_string(struct json_object *obj);

参考博客有:

json-c接口

//end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值