在C語言中,常見的Json讀寫庫有很多,比如:cJSON、jansson、libscon、rapidjson等等。其中cJSON是使用最廣泛的。
對于Json文件的讀取,我們可以通過解析Json字符串來實現(xiàn)。首先,需要從文件中讀取Json字符串:
FILE *fp = fopen("example.json", "r"); char readBuffer[65536]; rapidjson::FileReadStream fileStream(fp, readBuffer, sizeof(readBuffer)); rapidjson::Document document; document.ParseStream(fileStream);
這樣我們就可以得到一個Json文件的根節(jié)點:
assert(document.IsObject());
然后可以通過以下方式遍歷獲取Json中的各個節(jié)點:
const rapidjson::Value& value = document["MemberName"]; assert(value.IsString()); printf("%s\n", value.GetString());
對于Json文件的寫入,我們同樣可以使用cJSON庫來實現(xiàn)。首先,需要創(chuàng)建一個cJSON對象,然后再添加屬性:
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 18); cJSON_AddStringToObject(root, "gender", "male");
最后將Json對象以字符串形式輸出到文件中:
char * jsonStr = cJSON_Print(root); FILE *fp = fopen("example.json", "w+"); fwrite(jsonStr, strlen(jsonStr), 1, fp); fclose(fp);
使用以上方法,我們就可以方便地實現(xiàn)Json文件的讀寫。