C JSON 樹形是一種基于 C 語言的解析器庫,可以將 JSON 數據解析為以樹形結構表示的內部數據結構,方便程序進行處理和操作。
// 示例代碼: #include#include #include #include "cJSON.h" int main() { char *json_str = "{\"name\":\"張三\",\"age\":20,\"friends\":[{\"name\":\"李四\",\"age\":21},{\"name\":\"王五\",\"age\":22}],\"address\":{\"province\":\"四川\",\"city\":\"成都\"}}"; cJSON *root = cJSON_Parse(json_str); if (root == NULL) { printf("解析 JSON 數據失敗\n"); return EXIT_FAILURE; } // 獲取屬性值 cJSON *name = cJSON_GetObjectItem(root, "name"); if (name != NULL && name->type == cJSON_String) { printf("姓名:%s\n", name->valuestring); } // 獲取數組 cJSON *friends = cJSON_GetObjectItem(root, "friends"); if (friends != NULL && friends->type == cJSON_Array) { printf("好友:\n"); int i; cJSON *item; cJSON_ArrayForEach(item, friends) { cJSON *friend_name = cJSON_GetObjectItem(item, "name"); cJSON *friend_age = cJSON_GetObjectItem(item, "age"); if (friend_name != NULL && friend_name->type == cJSON_String && friend_age != NULL && friend_age->type == cJSON_Number) { printf("%s,年齡:%d\n", friend_name->valuestring, friend_age->valueint); } } } // 獲取對象 cJSON *address = cJSON_GetObjectItem(root, "address"); if (address != NULL && address->type == cJSON_Object) { cJSON *province = cJSON_GetObjectItem(address, "province"); cJSON *city = cJSON_GetObjectItem(address, "city"); if (province != NULL && province->type == cJSON_String && city != NULL && city->type == cJSON_String) { printf("地址:%s%s\n", province->valuestring, city->valuestring); } } cJSON_Delete(root); return EXIT_SUCCESS; }
以上示例代碼中,首先解析了一個 JSON 字符串,并將其保存為一個 cJSON 對象指針。然后通過調用 cJSON_GetObjectItem 函數獲取其中的屬性值、數組和對象,并進行相應的解析和處理。
C JSON 樹形是一個非常實用的 JSON 解析庫,尤其適合嵌入式系統等資源有限的環境中使用。
下一篇python 搶激活碼