JSON是一種常見的數據存儲格式,而C作為一種高性能的編程語言,具有快速讀寫JSON數據的能力。當我們讀取JSON數據時,需要遍歷其屬性,以便我們能夠獲取所需的數據。
在C語言中,我們可以使用 cJSON 庫來處理JSON數據。這個庫提供了很多API來遍歷JSON數據的屬性。
// 假設我們有如下JSON數據 { "name": "Tom", "age": 18, "email": "tom@example.com", "phone": { "home": "111-111-1111", "work": "222-222-2222" }, "hobbies": ["reading", "swimming"] } // 讀取JSON數據 char* data = "{\"name\":\"Tom\",\"age\":18,\"email\":\"tom@example.com\",\"phone\":{\"home\":\"111-111-1111\",\"work\":\"222-222-2222\"},\"hobbies\":[\"reading\",\"swimming\"]}"; cJSON* root = cJSON_Parse(data); // 遍歷JSON數據屬性 cJSON* name = cJSON_GetObjectItem(root, "name"); printf("Name: %s\n", name->valuestring); // 輸出 Name: Tom cJSON* age = cJSON_GetObjectItem(root, "age"); printf("Age: %d\n", age->valueint); // 輸出 Age: 18 cJSON* email = cJSON_GetObjectItem(root, "email"); printf("Email: %s\n", email->valuestring); // 輸出 Email: tom@example.com cJSON* phone = cJSON_GetObjectItem(root, "phone"); cJSON* home = cJSON_GetObjectItem(phone, "home"); printf("Home Phone: %s\n", home->valuestring); // 輸出 Home Phone: 111-111-1111 cJSON* work = cJSON_GetObjectItem(phone, "work"); printf("Work Phone: %s\n", work->valuestring); // 輸出 Work Phone: 222-222-2222 cJSON* hobbies = cJSON_GetObjectItem(root, "hobbies"); cJSON* hobby = NULL; cJSON_ArrayForEach(hobby, hobbies){ printf("Hobby: %s\n", hobby->valuestring); // 輸出 Hobby: reading 和 Hobby: swimming } // 釋放JSON數據 cJSON_Delete(root);
以上代碼演示了如何遍歷JSON數據的屬性。請注意,cJSON 庫可用的函數非常豐富,允許我們使用快速,靈活且可靠的方式讀寫JSON數據。