C JSON列表轉Map是一項常用的操作,主要是將JSON數據列表轉化為Map類型,便于對其中的數據進行操作,同時也提高了程序的效率。
對于C語言而言,可以通過使用 cJSON 庫來實現這一功能。該庫所提供的 cJSON_Parse 函數可以將 JSON 字符串解析為 cJSON 對象,而后可通過遍歷該對象來將其轉換為 Map 類型。
cJSON *root = cJSON_Parse(json_str); if(!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { cJSON *item = NULL; cJSON_ArrayForEach(item, root) { cJSON *key = cJSON_GetObjectItemCaseSensitive(item, "key"); cJSON *value = cJSON_GetObjectItemCaseSensitive(item, "value"); map_insert(map, key->valuestring, value->valuestring); } cJSON_Delete(root); }
該段代碼中,json_str 為 JSON 字符串,map 為 Map 對象。通過 cJSON_Parse 函數,將 JSON 字符串解析為 cJSON 對象,并通過 cJSON_ArrayForEach 函數遍歷該對象中的每一個列表元素。再通過 cJSON_GetObjectItemCaseSensitive 函數獲取每個元素中的 key 和 value 值,并將其插入到 Map 對象中。
遍歷完成后,記得要使用 cJSON_Delete 函數釋放內存。
總之,通過使用 cJSON 庫,C語言可以方便地將 JSON 列表轉換為 Map 類型,從而為程序的實現帶來了很大的便利。