在使用C語言進行JSON格式數據解析的過程中,經常需要將JSON轉換成List來進行數據處理。以下是使用C語言實現JSON轉換成List的示例代碼。
#include "cJSON.h" typedef struct { char *name; int age; } person; void jsonToList(char *jsonStr, int jsonLength, person **items, int *itemsCount) { cJSON *root = cJSON_ParseWithLength(jsonStr, jsonLength); if (root == NULL) { return; } cJSON *array = cJSON_GetObjectItem(root, "items"); if (array == NULL) { cJSON_Delete(root); return; } *itemsCount = cJSON_GetArraySize(array); *items = (person *) malloc((*itemsCount) * sizeof(person)); for (int i = 0; i< (*itemsCount); i++) { cJSON *item = cJSON_GetArrayItem(array, i); cJSON *name = cJSON_GetObjectItem(item, "name"); cJSON *age = cJSON_GetObjectItem(item, "age"); if (name != NULL && name->valuestring != NULL) { (*items)[i].name = name->valuestring; } else { (*items)[i].name = ""; } if (age != NULL && age->valueint != NULL) { (*items)[i].age = age->valueint; } else { (*items)[i].age = 0; } } cJSON_Delete(root); }
使用該函數可以將包含JSON數據的字符串轉換成一個List。該函數使用了JSON解析庫cJSON來解析JSON數據,并將解析得到的結果存儲在List中。通過該函數,可以輕松地處理JSON格式的數據。