JSON是一種輕量級的數據交換格式,它易于閱讀和編寫,也易于機器解析和生成。在C語言中,我們可以使用第三方庫來解析JSON格式的數據。
常用的JSON解析庫有cJSON和jansson兩種:
// 使用cJSON解析JSON數據的例子: #include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{\"name\":\"張三\",\"age\":23,\"sex\":\"男\"}"; cJSON* root = cJSON_Parse(json_str); if (root == NULL) { printf("解析JSON數據失?。?); return -1; } cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* sex = cJSON_GetObjectItem(root, "sex"); printf("name:%s\n", name->valuestring); printf("age:%d\n", age->valueint); printf("sex:%s\n", sex->valuestring); cJSON_Delete(root); return 0; }
// 使用jansson解析JSON數據的例子: #include <stdio.h> #include <jansson.h> int main() { char* json_str = "{\"name\":\"張三\",\"age\":23,\"sex\":\"男\"}"; json_error_t error; json_t* root = json_loads(json_str, 0, &error); if (root == NULL) { printf("解析JSON數據失敗:%s", error.text); return -1; } json_t* name = json_object_get(root, "name"); json_t* age = json_object_get(root, "age"); json_t* sex = json_object_get(root, "sex"); printf("name:%s\n", json_string_value(name)); printf("age:%d\n", (int)json_integer_value(age)); printf("sex:%s\n", json_string_value(sex)); json_decref(root); return 0; }
使用這些庫可以方便地將JSON格式的數據轉換成C語言中的數據類型,從而更方便地操作和處理數據。
上一篇MySQL停車場數據庫