在C語言中,讀取JSON數據是一項非常常見的任務。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它使用易于人類閱讀和編寫的文本,且易于機器解析和生成。在C語言中,讀取JSON數據最流行的方式是使用cJSON庫。cJSON是一個輕量級的C語言庫,用于解析、生成和操作JSON數據。
/* 使用cJSON解析JSON數據 */ #include "cJSON.h" #includeint main() { char* json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; cJSON *json = cJSON_Parse(json_string); if (json == NULL) { printf("Error: Invalid JSON string.\n"); return 1; } // 讀取JSON數據 cJSON* name = cJSON_GetObjectItem(json, "name"); if (name != NULL && name->type == cJSON_String) { printf("name: %s\n", name->valuestring); } cJSON* age = cJSON_GetObjectItem(json, "age"); if (age != NULL && age->type == cJSON_Number) { printf("age: %d\n", age->valueint); } cJSON* city = cJSON_GetObjectItem(json, "city"); if (city != NULL && city->type == cJSON_String) { printf("city: %s\n", city->valuestring); } cJSON_Delete(json); return 0; }
在此示例中,我們創建了一個JSON字符串,并使用cJSON_Parse()函數將其解析為cJSON對象。接下來,我們使用cJSON_GetObjectItem()函數獲取JSON對象的各個屬性。如果屬性存在并具有正確的類型,則可以使用cJSON類型結構體中的相應成員(如valuestring或valueint)訪問該屬性的值。
如果JSON字符串無效,cJSON_Parse()函數將返回NULL,我們可以使用該函數返回的錯誤來檢測JSON解析是否有誤。最后,需要使用cJSON_Delete()函數刪除cJSON對象的內存分配。
上一篇html 包含js代碼
下一篇c json轉字典