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字符串,然后直接返回即可。