在C語(yǔ)言中,JSON數(shù)據(jù)的處理一直是一個(gè)比較麻煩的問(wèn)題,然而,針對(duì)這個(gè)問(wèn)題,有許多優(yōu)秀的第三方庫(kù)可以使用,例如 cJSON 操作類。
cJSON是一種輕量級(jí)的JSON解析器,它可以很方便地將JSON文本轉(zhuǎn)換為C結(jié)構(gòu)。同時(shí),cJSON還可以將C結(jié)構(gòu)序列化為JSON文本,這極大地方便了C語(yǔ)言程序的開發(fā)。
// 解析JSON cJSON *root = cJSON_Parse(jsonText); if (root == NULL) { // 解析失敗,處理錯(cuò)誤 } // 獲取JSON的各個(gè)字段 cJSON *name = cJSON_GetObjectItem(root, "name"); int age = cJSON_GetObjectItem(root, "age")->valueint; cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); // 遍歷JSON數(shù)組 cJSON *hobby = NULL; cJSON_ArrayForEach(hobby, hobbies) { printf("%s\n", hobby->valuestring); } // 釋放資源 cJSON_Delete(root);
以上代碼演示了如何使用cJSON解析和遍歷JSON數(shù)據(jù),相信大家一看便能明白。
// 生成JSON cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Jack"); cJSON_AddNumberToObject(root, "age", 23); cJSON *hobbies = cJSON_CreateArray(); cJSON_AddItemToArray(hobbies, cJSON_CreateString("reading")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("swimming")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("listening to music")); cJSON_AddItemToObject(root, "hobbies", hobbies); // 將JSON轉(zhuǎn)換為文本 char *jsonText = cJSON_Print(root); // 釋放資源 cJSON_Delete(root); free(jsonText);
以上代碼演示了如何使用cJSON生成JSON數(shù)據(jù),將C結(jié)構(gòu)轉(zhuǎn)換為JSON文本。使用方法也是很簡(jiǎn)單的,只需要根據(jù)需要逐個(gè)添加JSON字段即可。最后通過(guò)cJSON_Print函數(shù)將生成的JSON轉(zhuǎn)換為字符串。
總的來(lái)說(shuō),cJSON的使用非常方便,是一款很不錯(cuò)的JSON操作類。當(dāng)然了,如果需要更加復(fù)雜的JSON操作,也可使用其他第三方庫(kù)進(jìn)行處理。
上一篇vue isscroll
下一篇c json 讀寫