参考文章:
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);
函数参数:
扫描二维码关注公众号,回复:
13135923 查看本文章

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内存空间