struct json_object * json_object_new_object();
//创建个空的json_type_object类型的JSON对象
struct json_object* json_object_new_boolean(Boolean b);
//创建个json_type_boolean值类型json对象
Boolean json_object_get_boolean(struct json_object *obj);
//从json对象中boolean值类型得到boolean值
int json_object_get_int(struct json_object *obj);
//从json对象中int值类型得到int值
struct json_object * json_object_new_array();
//创建个空的json_type_array类型JSON数组值对象
struct json_object * json_tokener_parse(char *str);
//由str里的JSON字符串生成JSON对象,str是json_object_to_json_string() 生成的。
参数:
str :json字符串
struct json_object * json_object_object_get(struct json_object * json,char *name);
//从json中按名字取一个对象。
参数:
json :json对象
name : json域名字
struct json_object * * json_object_get(struct json_object * this)
//手动的增加对象引用计数(每个对象的初始引用计数为1)。使用c库最关心的是内存谁来分配, 谁来释放. jsonc的内存管理方式, 是基于引用计数的内存树(链), 如果把一个struct json_object 对象a, add到另一个对象b上, 就不用显式的释放(json_object_put) a了, 相当于把a挂到了b的对象树上, 释放b的时候, 就会释放a. 当a既add到b上, 又add到对象c上时会导致a被释放两次(double free), 这时可以增加a的引用计数(调用函数json_object_get(a)), 这时如果先释放b, 后释放c, 当释放b时, 并不会真正的释放a, 而是减少a的引用计数为1, 然后释放c时, 才真正释放a.
参数:
this:json对象
void json_object_put(struct json_object * this)
//减少对象引用次数一次,当对象的引用计数减少到0时就会释放资源
参数:
This:json对象
Int json_object_is_type(struct json_object * this, enum json_type type)
//检查json_object是json的某个类型
参数:
this: json_object 实例
type: json_type_boolean,json_type_double, json_type_int, json_type_object, json_type_array, json_type_string
enum json_type json_object_get_type(struct json_object * this )
//得到json_object的类型。
参数:
this – json对象
char * json_object_to_json_string(struct json_object * this)
//将json_object内容转换json格式字符串,其中可能含有转义符。
参数:
this – json对象
返回值:
Json格式字符串
void json_object_object_add(struct json_object* obj, char *key, struct json_object *val);
//添加个对象域到json对象中
参数:
Obj – json对象
key – 域名字
val – json值对象
void json_object_object_del(struct json_object* obj, char *key);
//删除key值json对象
参数:
obj – json对象
key – 域名字
int json_object_array_length(struct json_object *obj);
//得到json对象数组的长度
参数:
ob j – json数组值对象
extern int json_object_array_add(struct json_object *obj,struct json_object *val);
//添加一元素在json对象数组末端
参数:
ob j – json数组值对象
val – json值对象
int json_object_array_put_idx(struct json_object *obj, int idx,struct json_object *val);
//在指定的json对象数组下标插入或替换一个json对象元素。
参数:
ob j – json数组值对象
val – json值对象
idx – 数组下标
struct json_object * json_object_array_get_idx(struct json_object * json_array,int i);
//从数组中,按下标取JSON值对象
参数:
json_array – json 数组类型对象
i – 数组下标位置
定义宏 json_object_object_foreach(obj,key,val)
//遍历json对象的key和值 (key, val默认参数不变)