C JSON 轉 List 對象數組是一個在編程中非常重要的操作。C JSON 是一種簡單的、輕量級的 JSON 解析器,它可以將 JSON 字符串解析為 C 語言對象(string、number、boolean、array 和 object)。在實際的開發中,我們常常需要將 JSON 數據轉換成 List 對象數組,以便對數據進行處理和操作。
# include "cJSON.h" # include# include /** * 解析 JSON 字符串并轉成 List 對象數組。 */ int parseJsonToList(char* jsonStr, List* list){ cJSON* json = cJSON_Parse(jsonStr); if (json == NULL) { printf("json parse error"); return -1; } cJSON* jsonArray = cJSON_GetObjectItem(json ,"data"); if (jsonArray == NULL || cJSON_GetArraySize(jsonArray) == 0) { printf("json array is empty."); return -1; } int size = cJSON_GetArraySize(jsonArray); for (int i = 0; i< size; i++){ cJSON* obj = cJSON_GetArrayItem(jsonArray, i); Object* object = createObject(); cJSON* jsonItem = cJSON_GetObjectItem(obj, "id"); if (jsonItem != NULL && !cJSON_IsNull(jsonItem)){ int id = jsonItem->valueint; setObjectId(object, id); } jsonItem = cJSON_GetObjectItem(obj, "name"); if (jsonItem != NULL && !cJSON_IsNull(jsonItem)) { char* name = jsonItem->valuestring; setObjectName(object, name); } addToList(list, object); } return size; }
上面是一個 C 語言函數示例,用于將 JSON 字符串解析成 List 對象數組。首先,我們調用 cJSON_Parse() 函數,將 JSON 字符串解析成 cJSON 對象。然后,我們通過 cJSON_GetObjectItem() 函數取得名為 "data" 的 JSON 數組,然后使用 cJSON_GetArrayItem() 函數遍歷數組中的每一個元素,將其轉成 List 對象數組中的 Object 對象,并將其添加到 List 中。最后,返回數組中元素的個數。