JSON是JavaScript Object Notation的縮寫,是一種非常輕便的數據交換格式,使用C語言解析JSON數據可以提供高效和靈活的數據操作。在JSON數據中,屬性和屬性值是成對出現的,實現C語言解析JSON數據時需要注意如何獲取屬性值。
// 假設有以下JSON數據 { "name": "Jack", "age": 20, "gender": "male" } // 使用C語言解析JSON數據 char* json_data = "{\"name\": \"Jack\", \"age\": 20, \"gender\": \"male\"}"; cJSON* json = cJSON_Parse(json_data); if (json != NULL) { cJSON* name_object = cJSON_GetObjectItem(json, "name"); if (name_object != NULL && cJSON_IsString(name_object)) { char* name_value = name_object->valuestring; printf("Name: %s\n", name_value); } cJSON* age_object = cJSON_GetObjectItem(json, "age"); if (age_object != NULL && cJSON_IsNumber(age_object)) { int age_value = age_object->valueint; printf("Age: %d\n", age_value); } cJSON* gender_object = cJSON_GetObjectItem(json, "gender"); if (gender_object != NULL && cJSON_IsString(gender_object)) { char* gender_value = gender_object->valuestring; printf("Gender: %s\n", gender_value); } }
上述代碼展示如何使用C語言解析JSON數據并獲取屬性值。首先通過cJSON_Parse函數將JSON數據解析為JSON對象。然后通過cJSON_GetObjectItem函數以屬性名作為參數獲取屬性對象。使用cJSON_IsString或cJSON_IsNumber函數判斷屬性對象是否正確,最后使用屬性對象的valuestring或valueint成員變量獲取屬性值。