在C語言中使用JSON字符串的方法有很多,本篇文章主要介紹如何使用cJSON庫來解析JSON字符串。
cJSON *root = NULL; cJSON *item = NULL; char *json_string = "{\"name\":\"Tom\",\"age\":20,\"hobby\":[\"reading\",\"sports\"]}"; root = cJSON_Parse(json_string); if (root == NULL) { // 解析失敗,處理錯誤 return; } // 解析name字段 item = cJSON_GetObjectItem(root, "name"); if (item != NULL) { printf("name: %s\n", item->valuestring); } // 解析age字段 item = cJSON_GetObjectItem(root, "age"); if (item != NULL) { printf("age: %d\n", item->valueint); } // 解析hobby字段 item = cJSON_GetObjectItem(root, "hobby"); if (item != NULL) { cJSON *subitem = NULL; int hobby_size = cJSON_GetArraySize(item); printf("hobby: "); for (int i = 0; i< hobby_size; i++) { subitem = cJSON_GetArrayItem(item, i); printf("%s ", subitem->valuestring); } printf("\n"); } cJSON_Delete(root);
以上代碼通過cJSON庫中的cJSON_Parse函數將JSON字符串解析成一個cJSON類型的根節點,然后通過cJSON_GetObjectItem和cJSON_GetArrayItem等函數分別從根節點中獲取相應的字段。
其中,cJSON_GetObjectItem函數用于獲取JSON對象中的字段,cJSON_GetArrayItem函數用于獲取JSON數組中的元素。在獲取到這些字段或元素后,可以用cJSON的valuestring、valueint等成員變量來獲取相應的值。
最后,使用cJSON_Delete函數釋放內存。
上一篇c 使用json實例化
下一篇python 考勤表