在C語言中,將字符串轉換為JSON對象的功能需要用到一個開源的C庫,它叫做cJSON。
首先你需要下載cJSON,并將其源代碼添加到你的項目中。
接著,在代碼中包含cJSON.h頭文件,聲明一個cJSON結構體指針,并使用cJSON_CreateObject()函數來創建一個JSON對象:
#include "cJSON.h" ... cJSON *json = cJSON_CreateObject();
接下來,你可以使用cJSON_AddItemToObject()函數向JSON對象中添加鍵-值對。這里我們添加一個字符串鍵"name",并將其對應的值設為"John Smith":
cJSON_AddItemToObject(json, "name", cJSON_CreateString("John Smith"));
如果你要添加更多的鍵-值對,你可以連續使用多個cJSON_AddItemToObject()函數。
當你完成添加鍵-值對之后,可以將JSON對象轉化為字符串以便存儲或傳輸。使用cJSON_Print()函數可以將JSON對象轉化為格式化的字符串:
char *json_string = cJSON_Print(json);
現在你可以使用這個字符串了。如果你需要將其發送到遠程服務器,你只需要將其添加到HTTP POST請求的正文中:
char *post_data = (char*)malloc(strlen(json_string) + 1 + strlen(url)); sprintf(post_data, "JSON=%s", json_string); send_http_request(url, "POST", post_data); free(post_data);
最后,別忘了釋放你在使用cJSON時分配的內存:
free(json_string); cJSON_Delete(json);