C 語言雖然沒有內置的 JSON 庫,但我們可以通過字符串操作的方式將結構體或變量轉換為 JSON 格式的字符串。
首先,我們需要在項目中添加 cJSON 庫,該庫支持將 C 結構體轉換為 JSON 格式的字符串。
// 直接在代碼中聲明所需的 cJSON 結構體并初始化
cJSON *root = cJSON_CreateObject();
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Tom"));
cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(20));
cJSON_AddItemToObject(root, "country", cJSON_CreateString("China"));
cJSON_AddItemToObject(root, "skills", cJSON_CreateStringArray(skills, skills_len));
// 轉換 cJSON 結構體為 JSON 格式字符串
char *json_str = cJSON_Print(root);
// 釋放 cJSON 結構體內存
cJSON_Delete(root);
以上代碼可將一個結構體轉換為如下所示的 JSON 格式字符串:
{
"name": "Tom",
"age": 20,
"country": "China",
"skills": [
"C",
"Python",
"Java"
]
}
除此之外,我們也可以使用 sprintf 函數手動拼接字符串,從而生成 JSON 格式的字符串。
// 直接手動拼接 JSON 格式字符串
char json_str[1024];
sprintf(json_str, "{ \"name\": \"%s\", \"age\": %d, \"country\": \"%s\", \"skills\": [ \"%s\", \"%s\", \"%s\" ] }",
"Tom", 20, "China", "C", "Python", "Java");
這種方式雖然代碼長度比較長,但同樣可以實現將結構體轉換為 JSON 格式的字符串。