c JSON轉(zhuǎn)數(shù)據(jù)結構是一種十分常見的技術操作。在具有大量JSON格式數(shù)據(jù)的項目中,利用JSON轉(zhuǎn)數(shù)據(jù)結構可以非常方便地將JSON數(shù)據(jù)轉(zhuǎn)化成對應的結構體數(shù)據(jù),方便后續(xù)的操作和處理。
#include#include #include #include "cjson.h" int main(int argc, char **argv) { char *json_string = "{\"name\":\"Lily\", \"age\":18, \"gender\":\"female\", \"hobby\":[\"reading\",\"music\"]}"; cJSON *root = cJSON_Parse(json_string); if(root) { cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *gender = cJSON_GetObjectItem(root, "gender"); cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); if(name) { printf("Name: %s\n", name->valuestring); } if(age) { printf("Age: %d\n", age->valueint); } if(gender) { printf("Gender: %s\n", gender->valuestring); } if(hobby) { cJSON *hobby_item = NULL; int hobby_index = 0; cJSON_ArrayForEach(hobby_item, hobby) { printf("Hobby #%02d: %s\n", ++hobby_index, cJSON_GetStringValue(hobby_item)); } } } cJSON_Delete(root); return 0; }
上述代碼展示了如何使用cJSON庫進行轉(zhuǎn)化操作。首先需要將JSON字符串轉(zhuǎn)化成cJSON_Root指針,然后通過cJSON_GetObjectItem函數(shù)取出相應的JSON結構體成員。可以使用valuestring、valueint等函數(shù)取出結構體成員的值進行操作,也可以使用cJSON_ArrayForEach函數(shù)遍歷json數(shù)組結構類型成員。
cJSON轉(zhuǎn)數(shù)據(jù)結構操作與JSON格式的數(shù)據(jù)密切相關,掌握該技術可以使得在處理JSON數(shù)據(jù)時十分便捷,提高工作效率。