cjson是一個輕量級的C語言JSON解析庫,它可以解析JSON串成為JSON對象、JSON數組、JSON字符串等。在實際開發中,我們常常需要解析JSON串中的數組,下面我們來看看如何使用cjson來解析JSON串中的數組。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> int main(int argc, char **argv) { char *json_str = "{\"names\":[\"Tom\",\"Jerry\",\"Spike\"]}"; cJSON *json = cJSON_Parse(json_str); cJSON *names = cJSON_GetObjectItem(json, "names"); int array_size = cJSON_GetArraySize(names); for (int i = 0; i< array_size; i++) { cJSON *item = cJSON_GetArrayItem(names, i); printf("%s\n", item->valuestring); } cJSON_Delete(json); return 0; }
在上述代碼中,我們首先定義了一個JSON串,它包含了一個名為"names"的數組,數組中包含了三個字符串元素:"Tom"、"Jerry"、"Spike"。
接著我們使用cJSON庫中的cJSON_Parse函數將JSON串解析為JSON對象,并使用cJSON_GetObjectItem函數獲取到"names"數組。然后我們使用cJSON_GetArraySize函數獲取到數組的大小,并使用cJSON_GetArrayItem函數遍歷數組中的元素,最后輸出每個字符串元素的內容。
需要注意的是,使用cJSON_GetArrayItem函數獲取到數組中的元素后,可以使用不同的cJSON類型函數獲取到元素的值,例如cJSON_IsArray判斷元素是否為JSON數組、cJSON_IsNumber判斷元素是否為數字、cJSON_IsBool判斷元素是否為布爾類型元素等。
以上就是使用cjson來解析JSON串中的數組的方法,希望能夠對大家有所幫助。