C語言中有一個非常常用的庫,叫做cJSON,它可以將一段json字符串轉換成一個cJSON對象,然后我們可以通過它提供的一系列API來操作這個對象,比如獲取值、修改值等等。但是有時候我們需要將這個cJSON對象重新轉換成json字符串,這個時候就需要使用cJSON庫提供的cJSON_Print函數。
char *cJSON_Print(const cJSON *item);
cJSON_Print函數接受一個cJSON對象作為參數,返回一個char指針,這個指針指向的字符串就是轉換后的json字符串。下面來看一個例子:
#include <stdio.h> #include <cjson/cJSON.h> int main() { char *json_str = "{\"name\":\"Tom\",\"age\":18}"; cJSON *json_root = cJSON_Parse(json_str); if (!json_root) { printf("json parse error\n"); return 1; } char *new_json_str = cJSON_Print(json_root); printf("new_json_str: %s\n", new_json_str); free(new_json_str); cJSON_Delete(json_root); return 0; }
上面這個例子中,我們先定義了一個json字符串,然后將它解析成了一個cJSON對象。接著我們調用了cJSON_Print函數將這個對象轉成了一個新的json字符串,最后用printf打印出來。注意,在調用完cJSON_Print函數以后,我們需要手動調用free函數來釋放new_json_str指向的內存。