C語言中,編碼和解碼json字符串是一個常見的需求。在一些應用場景下,我們需要把json數據轉換為字符串并傳輸,或者把字符串解析成json數據進行處理。下面介紹如何使用c語言實現把json轉換成字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cjson/cJSON.h>
// 把json數據轉換為字符串
char* json_to_string(const cJSON* json)
{
char* str = cJSON_Print(json);
return str;
}
上面的代碼用到了cJSON庫,它是一個輕量級的json解析庫。cJSON庫的下載、安裝及使用方式可以參考官方文檔。
我們先來看一下轉換前的json數據:
{
"name": "John",
"age": 30,
"city": "New York"
}
然后,我們先調用cJSON_Parse函數將json數據解析成cJSON對象。具體如下:
char* json_data = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON* json = cJSON_Parse(json_data);
char* json_str = json_to_string(json);
printf("%s", json_str); // 輸出 "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"
這樣就完成了把json轉換成字符串的過程了。通過調用cJSON_Print函數,可以把cJSON對象轉換成對應的json字符串,然后直接返回即可。