当前位置: 首页 > 工具软件 > json.c > 使用案例 >

json-c使用_介绍

赵珂
2023-12-01


参考文章:
http://json-c.github.io/json-c/json-c-0.13.1/doc/html/index.html

1 简介

简单介绍下json-c库的一些函数。

2 下载及编译

2.1下载地址

http://www.linuxfromscratch.org/blfs/view/svn/general/json-c.html

2.2 编译

在编译前需要Linux PC上确认以下被安装:

apt-get install autoconf automake libtool

2.2.1 交叉编译

./configure CC=arm-linux-gcc --host=arm-linux --prefix=$PWD/install
make && make install

2.2.2 PC Linux编译

./configure --prefix=$PWD/install
make && make install

3 函数介绍

3.1 json_object_new_object

函数原型:

JSON_EXPORT struct json_object* json_object_new_object(void);

函数参数:

函数返回:

struct json_object*指针

说明:
创建一个新的json_object对象。

3.2 json_object_object_add

函数原型:

JSON_EXPORT int json_object_object_add(struct json_object* obj, const char *key,
				   struct json_object *val);

函数参数:

obj:要被添加的json_object对象
key:字段名称
val:与key关联的json_object对象

函数返回:

0:成功
<0:失败

说明:
将字段名称为key的json_object对象val添加进json_object对象obj中去

3.3 json_object_new_int

函数原型:

JSON_EXPORT struct json_object* json_object_new_int(int32_t i);

函数参数:

i:数值

函数返回:

新的json_object对象

说明:
创建一个类型为int的json_object新对象

3.4 json_object_new_array

函数原型:

JSON_EXPORT struct json_object* json_object_new_array(void);

函数参数:

函数返回:

新的json_object对象

说明:
创建一个类型为array的json_object新对象

3.5 json_object_array_add

函数原型:

JSON_EXPORT int json_object_array_add(struct json_object *obj,
				 struct json_object *val);

函数参数:

obj:要被添加的json_object对象
val:与添加到obj的json_object对象

函数返回:

0:成功
<0:失败

说明:
将json_object对象val添加到obj中

3.6 json_object_new_string

函数原型:

JSON_EXPORT struct json_object* json_object_new_string(const char *s);

函数参数:

s:字符串

函数返回:

新的json_object对象

说明:
创建一个类型为string的json_object新对象

3.7 json_tokener_parse

函数原型:

JSON_EXPORT struct json_object* json_tokener_parse(const char *str);

函数参数:

str:包含json数据的字符串

函数返回:

json_object对象

说明:
从str中解析出json_object对象

3.8 json_object_object_get_ex

函数原型:

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

函数参数:

obj:json_object对象
key:要获取的字段名称
val:与key关联的json_object对象

函数返回:

非0:成功
0:失败

说明:
从obj中获取字段为key的json_object对象指针val

3.9 json_object_get_type

函数原型:

extern enum json_type json_object_get_type(struct json_object *obj);

函数参数:

obj:json_object对象

函数返回:

json_object的类型

说明:
类型如下:

typedef enum json_type {
  json_type_null,
  json_type_boolean,
  json_type_double,
  json_type_int,
  json_type_object,
  json_type_array,
  json_type_string,
} json_type;

3.10 json_object_to_json_string

函数原型:

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

函数参数:

obj:json_object对象

函数返回:

字符串指针

说明:
将生成的json_object输出为字符串格式

3.11 json_object_put

函数原型:

JSON_EXPORT int json_object_put(struct json_object *obj);

函数参数:

obj:要被释放的对象

函数返回:

1:成功

说明:
释放掉json_object内存空间

 类似资料: