淘先锋技术网

首页 1 2 3 4 5 6 7

在C语言中,处理JSON数据是很普遍的。JSON数据通常使用双引号包围字符串。在使用C语言处理JSON数据时,我们需要知道如何使用双引号。

#include <stdio.h>
#include <string.h>
#include <jansson.h>
void print_json_string(const char* str)
{
const char *p = str;
putchar('"');
while (*p) {
if (*p == '"' || *p == '\\') {
putchar('\\');
putchar(*p);
} else if (*p == '\n') {
printf("\\n");
} else if (*p == '\r') {
printf("\\r");
} else if (*p == '\t') {
printf("\\t");
} else {
putchar(*p);
}
p++;
}
putchar('"');
}
int main()
{
const char *json_str = "{\"name\":\"Alice\",\"age\":20}";
json_t *root;
json_error_t error;
root = json_loads(json_str, 0, &error);
if (!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
json_t *name_obj = json_object_get(root, "name");
const char *name = json_string_value(name_obj);
printf("name: ");
print_json_string(name);
printf("\n");
json_decref(root);
return 0;
}

上面的代码展示了如何使用双引号在C语言中解析JSON数据。在代码中,我们使用了json_loads函数将JSON数据加载到json_t类型的变量中,然后使用json_object_get函数获取“name”属性的值。

在print_json_string函数中,我们使用了putchar函数和循环将双引号和JSON字符串输出到控制台。在循环中,我们还处理了JSON字符串中的转义字符,例如\\n、\\r和\\t。