C JSON轉List集合是一種常見的數據處理方式,它可以將JSON數據按照List的形式存儲,方便進行后續的數據處理和分析。在C語言中,我們可以使用一些開源的JSON解析庫來實現這一功能,例如cJSON。
#include <stdio.h>
#include <cJSON.h>
int main() {
// 定義JSON字符串
char* json_str = "{\"name\":\"張三\",\"age\":18,\"hobby\":[\"游泳\",\"跑步\"]}";
// 解析JSON字符串
cJSON* root = cJSON_Parse(json_str);
// 獲取name屬性的值
cJSON* name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
// 獲取age屬性的值
cJSON* age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
// 獲取hobby屬性的值
cJSON* hobby = cJSON_GetObjectItem(root, "hobby");
// 遍歷hobby數組
cJSON* tmp = hobby->child;
while (tmp) {
printf("hobby: %s\n", tmp->valuestring);
tmp = tmp->next;
}
// 釋放內存
cJSON_Delete(root);
return 0;
}
以上代碼演示了如何使用cJSON解析JSON字符串,并將其中的屬性值存儲到List集合中。在解析JSON字符串時,我們可以使用cJSON_Parse()函數將字符串轉換為cJSON對象,然后使用cJSON_GetObjectItem()函數獲取其中的屬性值。
在獲取數組類型的屬性時,我們需要先獲取該屬性的cJSON對象,然后使用cJSON_GetArraySize()函數獲取其元素個數。遍歷數組時,我們可以使用cJSON_GetArrayItem()函數獲取指定位置的元素。
在完成數據處理后,我們需要使用cJSON_Delete()函數釋放內存。