在使用C語言處理JSON對象的時候,我們通常需要從JSON對象中獲取某個key的值。下面是一個簡單的JSON對象示例:
{ "name": "張三", "age": 20, "hobbies": ["籃球", "游泳"] }
要獲取該JSON對象中的某個key的值,可以使用cJSON庫的cJSON_GetObjectItem函數。例如,要獲取該JSON對象中"name"所對應的值,可以使用以下代碼:
cJSON * json = cJSON_Parse(json_string); //將json字符串解析為cJSON對象 if(json != NULL) { cJSON * name = cJSON_GetObjectItem(json, "name"); //獲取"name"所對應的cJSON對象 if(name != NULL) { printf("名字:%s\n", name->valuestring); //輸出"name"的值 } }
上面的代碼首先將JSON字符串解析為cJSON對象,然后使用cJSON_GetObjectItem函數獲取"name"所對應的cJSON對象。如果獲取成功,則可以使用name->valuestring來獲取"name"的值,即"張三"。
同樣的方法也適用于獲取其他key的值。例如要獲取"age"的值,可以使用以下代碼:
cJSON * json = cJSON_Parse(json_string); //將json字符串解析為cJSON對象 if(json != NULL) { cJSON * age = cJSON_GetObjectItem(json, "age"); //獲取"age"所對應的cJSON對象 if(age != NULL) { printf("年齡:%d\n", age->valueint); //輸出"age"的值 } }
當然,如果要獲取的key對應的值是一個數組,也可以使用cJSON庫提供的相關函數來獲取每一個元素的值。