API 使用方式可以參考這裡
這邊就列出基本的操作,以這樣為例:
{ "name": "Brian", "sex": 0, "data": { "education": "master", "profession": "engineer" } }
組成 JSON object,並輸出成 string
struct json_object *root, *data; root = json_object_new_object(); json_object_object_add(root, "name", json_object_new_string("Brian")); json_object_object_add(root, "sex", json_object_new_int(0)); data = json_object_new_object(); json_object_object_add(data, "education", json_object_new_string("master")); json_object_object_add(data, "profession", json_object_new_string("engineer")); json_object_object_add(root, "data", data); // Output to string printf("%s", json_object_to_json_string(root)); // Decrease counter and free object json_object_put(data); json_object_put(root);
解開 JSON object
struct json_object *root, *name, *sex, *data, *edu, *prof; root = json_tokener_parse(json_string); // Use is_error() to check the result, don't use "j_root == NULL". if (is_error(j_root)) { printf("parse failed."); exit(-1); } name = json_object_object_get(root, "name"); sex = json_object_object_get(root, "sex"); data = json_object_object_get(root, "data"); // If parse fail, object is NULL if (data != NULL) { edu = json_object_object_get(data, "education"); prof= json_object_object_get(data, "profession"); } if (!name || !sex|| !edu || !prof) { printf("parse failed."); json_object_put(root); exit(-1); } // Fetch value printf("name=%s", json_object_get_string(name)); printf("sex=%d", json_object_get_int(sex)); printf("education=%s", json_object_get_string(edu)); printf("profession=%s", json_object_get_string(prof)); // Free json_object_put(root);
參考資料
json-c-0.9库的json_object_object_get()引发崩溃问题
görüntülüshow
回覆刪除ücretli show
52Z