在C語言中,要獲取JSON的key和value,需要使用JSON解析庫。以下是使用 cJSON?庫的示例代碼,具體的解析過程見注釋:
/*解析JSON數據*/ cJSON *root = cJSON_Parse(pJSONBuffer); /*獲取JSON對象*/ cJSON *data = cJSON_GetObjectItem(root, "data"); /*獲取JSON數組*/ cJSON *array = cJSON_GetObjectItem(data, "array"); /*遍歷JSON數組,并獲取每個對象*/ for (int i = 0; i< cJSON_GetArraySize(array); i++) { cJSON *obj = cJSON_GetArrayItem(array, i); /*獲取JSON中某個key的值,并將其轉化為對應類型*/ int id = cJSON_GetObjectItem(obj, "id")->valueint; char *name = cJSON_GetObjectItem(obj, "name")->valuestring; double score = cJSON_GetObjectItem(obj, "score")->valuedouble; printf("ID: %d\n", id); printf("Name: %s\n", name); printf("Score: %.2f\n", score); } /*釋放JSON對象*/ cJSON_Delete(root);
上述代碼中,我們首先通過 cJSON_Parse() 函數將JSON字符串解析成一個 cJSON 對象,然后通過 cJSON_GetObjectItem() 函數獲取JSON對象和數組,并使用 cJSON_GetArrayItem() 函數遍歷JSON數組中的每個對象。接著,我們使用 cJSON_GetObjectItem() 函數獲取每個對象中的key對應的值,并將其轉化為對應類型。最后,我們通過 cJSON_Delete() 函數釋放 cJSON 對象。