JSON是一種輕量級的數(shù)據(jù)交換格式,它由JavaScript語言中的對象字面量語法擴展而來。為了方便C語言開發(fā)者處理JSON格式的數(shù)據(jù),許多第三方庫如cJSON被開發(fā)出來,其中cJSON是一款快速、小巧、用戶友好的JSON解析器和生成器。
接收J(rèn)SON數(shù)據(jù):
//接收到的JSON數(shù)據(jù)
char *jsonString = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }";
//通過cJSON庫解析JSON數(shù)據(jù)
cJSON *json = cJSON_Parse(jsonString);
if (json == NULL) {
//解析JSON出錯
printf("Error before: %s\n", cJSON_GetErrorPtr());
} else {
//解析JSON成功,獲取數(shù)據(jù)
const char *name = cJSON_GetObjectItem(json, "name")->valuestring;
int age = cJSON_GetObjectItem(json, "age")->valueint;
const char *city = cJSON_GetObjectItem(json, "city")->valuestring;
printf("name:%s, age:%d, city:%s\n", name, age, city);
//釋放資源
cJSON_Delete(json);
}
打包JSON數(shù)據(jù):
//創(chuàng)建一個JSON對象
cJSON *json = cJSON_CreateObject();
//添加數(shù)據(jù)
cJSON_AddStringToObject(json, "name", "John");
cJSON_AddNumberToObject(json, "age", 30);
cJSON_AddStringToObject(json, "city", "New York");
//將JSON打包成字符串
char *jsonString = cJSON_PrintUnformatted(json);
//釋放資源
cJSON_Delete(json);
//打包好的JSON字符串
printf("JSON:%s\n", jsonString);
//釋放字符串資源
free(jsonString);
上述代碼中,我們首先創(chuàng)建了一個JSON對象,然后添加了三個數(shù)據(jù),最后使用cJSON_PrintUnformatted函數(shù)將JSON對象打包成字符串。接著我們釋放了JSON對象的內(nèi)存,并輸出了打包好的JSON字符串。
上一篇c# json 解析
下一篇vue 跨域原理