json-c用来拼写json结构

json-c用来拼写json结构

示例用来简单描述构建一个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 ;
}

评论

《“json-c用来拼写json结构”》 有 1 条评论

  1. 学到了

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注