在使用C語言解析JSON返回的數組時,我們需要使用第三方庫,可選的庫有cJSON和jsmn。這里我們以cJSON為例。
首先,我們需要將返回的JSON字符串解析成cJSON對象,代碼如下:
cJSON *root = cJSON_Parse(jsonString); if(root == NULL){ printf("Invalid JSON format!\n"); return; }
接下來,我們需要獲取數組對象,代碼如下:
cJSON *array = cJSON_GetObjectItem(root, "array"); if(array == NULL){ printf("Cannot find array in JSON!"); return; }
在獲取到數組對象之后,我們可以通過遍歷數組獲取其中的元素。代碼如下:
int arraySize = cJSON_GetArraySize(array); for(int i=0; itype == cJSON_String){ printf("%s\n", item->valuestring); }else if(item->type == cJSON_Number){ printf("%d\n", item->valueint); } }
在上述代碼中,我們首先通過cJSON_GetArraySize獲取數組的大小,然后使用cJSON_GetArrayItem獲取數組中的每個元素。元素的類型可以使用item->type獲取,然后根據不同類型使用item->valuestring或item->valueint獲取對應值。
最后,當我們使用完cJSON對象后,需要記得釋放內存,代碼如下:
cJSON_Delete(root);
這樣,我們就可以使用C語言解析JSON返回的數組了。
上一篇c 解析json第三方