C语言中的字符串是以字符数组的形式来存储的,但在现代的Web应用程序中,常常需要使用JSON格式来传递数据,此时需要将字符串转换为JSON格式。JSON是一种轻量级的数据交换格式,易于阅读和编写。下面演示如何使用C语言将字符串转换为JSON格式。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *str = "{\"name\":\"Tom\",\"age\":12,\"gender\":\"male\"}"; json_t *root; json_error_t error; // 将字符串解析为JSON格式 root = json_loads(str, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } // 将JSON格式转换为字符串 char *out = json_dumps(root, JSON_INDENT(4)); printf("%s\n", out); // 释放内存 free(out); json_decref(root); return 0; }
在上面的代码中,首先声明了一个字符串变量str,该字符串是一个JSON格式的字符串。接下来使用json_loads()函数将字符串解析成JSON格式,并将解析结果存储在json_t类型的root变量中。
然后,使用json_dumps()函数将JSON格式转换为字符串,并将结果存储在char类型的out变量中。JSON_INDENT(4)是一个选项,它将使输出以4个空格缩进。
最后,释放内存和JSON对象。json_decref()用于释放JSON对象的内存。