C語言提供了一些第三方庫來處理JSON格式字符串,其中比較常用的是cJSON庫。
將JSON字符串解析成cJSON對象的方式如下:
cJSON *cjson = cJSON_Parse(json_str); if(cjson == NULL){ // 解析失敗 }
可以通過cJSON提供的函數(shù)獲取cJSON對象的值,例如獲取字符串類型的值:
cJSON *item = cJSON_GetObjectItem(cjson, "key"); if(item == NULL){ // key不存在 } if(cJSON_IsString(item)){ const char *str = item->valuestring; }
將cJSON對象轉(zhuǎn)換成JSON字符串的方式如下:
char *json_str = cJSON_Print(cjson);
如果要處理多個JSON字符串,可以將它們存儲在一個JSON數(shù)組中,然后進(jìn)行處理:
cJSON *root = cJSON_Parse(json_array_str); if(cJSON_IsArray(root)){ int size = cJSON_GetArraySize(root); for(int i = 0; i< size; i++){ cJSON *item = cJSON_GetArrayItem(root, i); if(cJSON_IsObject(item)){ // 處理JSON對象 } } }
需要注意的是,處理JSON數(shù)組時,需要先判斷cJSON對象是否是一個數(shù)組。
上一篇h5 vue