在C語言中,我們可以通過調用外部的JSON庫來處理和解析JSON格式的數(shù)據(jù)。這里我們以CJSON為例,介紹如何取出JSON數(shù)據(jù)。
//JSON字符串示例 char *json_str = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; //創(chuàng)建JSON對象 cJSON *root = cJSON_Parse(json_str); //獲取鍵值對 cJSON *name = cJSON_GetObjectItem(root, "name"); //獲取"name"鍵對應的值 cJSON *age = cJSON_GetObjectItem(root, "age"); //獲取"age"鍵對應的值 cJSON *gender = cJSON_GetObjectItem(root, "gender"); //獲取"gender"鍵對應的值 //輸出結果 printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("gender: %s\n", gender->valuestring); //釋放內存 cJSON_Delete(root);
當JSON數(shù)據(jù)中存在數(shù)組時,我們可以通過循環(huán)的方式取出對應的值。
//JSON字符串示例 char *json_str = "{\"students\":[{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"},{\"name\":\"Lucy\",\"age\":20,\"gender\":\"female\"}]}"; //創(chuàng)建JSON對象 cJSON *root = cJSON_Parse(json_str); //獲取數(shù)組 cJSON *students = cJSON_GetObjectItem(root, "students"); //獲取數(shù)組長度 int size = cJSON_GetArraySize(students); //循環(huán)輸出 for(int i=0; ivaluestring); printf("age: %d\n", age->valueint); printf("gender: %s\n", gender->valuestring); } //釋放內存 cJSON_Delete(root);
通過以上方法,我們可以方便地在C語言中取出JSON格式的數(shù)據(jù),并進行相應的處理。