在C語言中,JSON是一種常見的數據交換格式。在操作JSON數據時,我們經常需要根據JSON數據結構進行反射操作。CJSON庫就是一種能夠實現JSON數據反射的庫。
#include <stdio.h> #include <cjson/cJSON.h> int main(){ const char *json_str = "{\"name\":\"John\",\"age\":25,\"hobby\":[\"reading\",\"playing games\"]}"; cJSON *root = cJSON_Parse(json_str); if(root){ // name cJSON *name = cJSON_GetObjectItem(root, "name"); if(name) printf("name: %s\n", name->valuestring); // age cJSON *age = cJSON_GetObjectItem(root, "age"); if(age) printf("age: %d\n", age->valueint); // hobby cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); if(hobby){ int hobby_size = cJSON_GetArraySize(hobby); printf("hobby size: %d\n", hobby_size); for(int i = 0; i < hobby_size; i++){ cJSON *hobby_item = cJSON_GetArrayItem(hobby, i); printf("hobby[%d]: %s\n", i, hobby_item->valuestring); } } cJSON_Delete(root); } return 0; }
以上代碼使用cJSON庫解析了一個JSON字符串,并根據JSON數據結構中的key值進行了反射操作。通過cJSON_GetObjectItem和cJSON_GetArrayItem兩個函數,我們可以獲取JSON數據結構中的value值,并根據value類型進行相應的處理。
通過以上簡單示例的實現,我們了解了如何使用CJSON庫進行JSON數據的反射操作。在實際應用中,我們需要結合業務需求,合理地利用CJSON庫完成JSON數據的解析和處理。
上一篇HTML小米網站代碼
下一篇python 迭代器實現