在C語言中,使用JSON數(shù)據(jù)格式需要借助第三方庫,如 cJSON 和 Jansson。以下是使用 cJSON 的示例。
#include <stdio.h> #include <cJSON.h> int main() { // 創(chuàng)建一個JSON對象 cJSON *jsonObj = cJSON_CreateObject(); // 往對象中添加鍵值對 cJSON_AddItemToObject(jsonObj, "name", cJSON_CreateString("Jack")); cJSON_AddItemToObject(jsonObj, "age", cJSON_CreateNumber(20)); // 序列化JSON對象為字符串 char *jsonStr = cJSON_Print(jsonObj); printf("JSON String: %s\n", jsonStr); // 解析JSON字符串 cJSON *jsonObjParsed = cJSON_Parse(jsonStr); // 從JSON對象中獲取鍵值對 const cJSON *name = cJSON_GetObjectItemCaseSensitive(jsonObjParsed, "name"); const cJSON *age = cJSON_GetObjectItemCaseSensitive(jsonObjParsed, "age"); printf("Name: %s, Age: %d\n", name->valuestring, age->valueint); // 釋放內(nèi)存 cJSON_Delete(jsonObj); cJSON_Delete(jsonObjParsed); free(jsonStr); return 0; }
在該示例中,首先創(chuàng)建了一個 JSON 對象使用 cJSON_CreateObject()方法,在其中添加了鍵為 "name" 和 "age" 的字符串型 和 數(shù)值型鍵值對, 然后使用 cJSON_Print() 序列化JSON對象為字符串并打印。接著,使用 cJSON_Parse() 解析該字符串,并從解析后的JSON對象中獲取鍵為 "name" 和 "age" 的值,最后輸出結(jié)果。