在C語言中,將字符串轉(zhuǎn)換成JSON格式需要用到一個JSON庫,這里我們使用cJSON庫。
首先需要在代碼中包含cJSON.h頭文件:
#include <cJSON.h>
然后就可以使用cJSON庫提供的函數(shù)來將字符串轉(zhuǎn)換成JSON格式了。
我們先來看一個簡單的示例:
char *json_str = "{ \"name\": \"John\", \"age\": 30 }"; //待轉(zhuǎn)換的JSON字符串
cJSON *json = cJSON_Parse(json_str); //將JSON字符串解析成cJSON對象
char *name = cJSON_GetObjectItem(json, "name")->valuestring; //獲取name屬性的值
int age = cJSON_GetObjectItem(json, "age")->valueint; //獲取age屬性的值
cJSON_Delete(json); //釋放cJSON對象
上面的代碼中,我們把一個JSON格式的字符串解析成了cJSON對象,然后通過cJSON_GetObjectItem函數(shù)獲取json對象中的name和age屬性的值。
如果要將其他類型(比如數(shù)字、數(shù)組)的數(shù)據(jù)轉(zhuǎn)換成JSON格式,也可以使用cJSON庫提供的相應函數(shù),例如:
cJSON *json = cJSON_CreateNumber(1234); //創(chuàng)建一個數(shù)字類型的JSON對象
cJSON *json_array = cJSON_CreateArray(); //創(chuàng)建一個數(shù)組類型的JSON對象
cJSON_AddItemToArray(json_array, cJSON_CreateString("hello")); //向數(shù)組中添加字符串類型的元素
最后,別忘記釋放cJSON對象,否則會造成內(nèi)存泄漏。