在進行C語言中JSON解析時,經常需要對多個數據進行解析。下面將詳細講解如何使用C語言解析多個數據的方法。
//解析多個數據 #include <stdio.h> #include <stdlib.h> #include <cJSON.h> int main() { cJSON * root = NULL; cJSON * item = NULL; cJSON * obj = NULL; char * json_str = "{\"name\":\"Tom\",\"age\":20,\"interests\":{\"play\":\"basketball\",\"listen\":\"music\"}}"; root = cJSON_Parse(json_str); //獲取name的值 item = cJSON_GetObjectItem(root, "name"); printf("name : %s\n", item->valuestring); //獲取age的值 item = cJSON_GetObjectItem(root, "age"); printf("age : %d\n", item->valueint); //獲取多個數據中的一個obj item = cJSON_GetObjectItem(root, "interests"); if(item != NULL) { printf("Interests:\n"); //獲取obj中的值 obj = cJSON_GetObjectItem(item, "play"); printf("Play : %s\n", obj->valuestring); obj = cJSON_GetObjectItem(item, "listen"); printf("Listen : %s\n", obj->valuestring); } cJSON_Delete(root); return 0; }
在上面代碼中,我們使用了cJSON庫中的cJSON_Parse()函數將JSON格式的字符串轉換為cJSON對象,在通過cJSON_GetObjectItem()函數獲取JSON對象中的數據,并通過不同的數據類型(如字符串、整型)進行輸出。若需要獲取多個數據對象,可以通過cJSON_GetObjectItem()函數獲取其子對象,在通過多個cJSON_GetObjectItem()函數獲取其子對象中的不同數據。