示例用来简单描述构建一个json结构,最后用打印的方式验证格式是否正确。
// 安装 yum install json-c-devel
// 编译 gcc tjson.c -ljson-c
#include <json-c/json.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
// 总节点
json_object * data_json = json_object_new_object();
if (data_json == NULL) {
printf("data_json json failed");
return -1 ;
}
json_object_object_add(data_json, "aaa", json_object_new_string("aaaaaaa") ) ;
json_object_object_add(data_json, "bbb", json_object_new_string("bbbbbbb") ) ;
json_object_object_add(data_json, "iii", json_object_new_int(123456) ) ;
// 数组节点
json_object * sub_array = json_object_new_array();
if (sub_array == NULL) {
printf("sub_array json failed");
return -1 ;
}
// 数组节点添加到总节点
json_object_object_add(data_json, "lst", sub_array);
// 申请子节点1
json_object* sub_object1 = json_object_new_object();
if (sub_object1 == NULL) {
printf("sub_object1 json failed");
return -1;
}
// 子节点1添加到数组
json_object_array_add(sub_array, sub_object1);
json_object_object_add(sub_object1, "sub_o", json_object_new_string("ooooo")) ;
json_object_object_add(sub_object1, "sub_p", json_object_new_string("ppppp")) ;
// 申请子节点2
json_object* sub_object2 = json_object_new_object();
if (sub_object2 == NULL) {
printf("sub_object2 json failed");
return -1;
}
// 子节点2添加到数组
json_object_array_add(sub_array, sub_object2);
json_object_object_add(sub_object2, "sub_q", json_object_new_string("qqqq") ) ;
json_object_object_add(sub_object2, "sub_r", json_object_new_string("rrrr") ) ;
const char* data_str= json_object_to_json_string(data_json) ;
printf("%s", data_str) ;
// 释放空间
json_object_put(data_json);
return 0 ;
}

发表回复