淘先锋技术网

首页 1 2 3 4 5 6 7

在C语言中,解析JSON报文是一项非常重要的任务。JSON是轻量级的数据交换格式,常用于Web服务的调用。本文将介绍如何使用C语言解析JSON报文。

#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
int main()
{
char *json_string = "{ \"name\": \"Tom\", \"age\": 20 }";
json_error_t error;
json_t *root = json_loads(json_string, 0, &error);
if(!root)
{
printf("json error on line %d: %s\n", error.line, error.text);
return 1;
}
const char *name = NULL;
json_t *age = NULL;
int age_val = 0;
json_object_foreach(root, key, value)
{
if(!strcmp(key, "name"))
{
name = json_string_value(value);
}
else if(!strcmp(key, "age"))
{
age = value;
}
}
if(!name || !age)
{
printf("parse error\n");
return 1;
}
age_val = json_integer_value(age);
printf("Name: %s, Age: %d\n", name, age_val);
json_decref(root);
return 0;
}

上面是使用jansson库的例子。首先需要引入jansson.h头文件,然后使用json_loads函数将JSON字符串解析成json_t类型的根节点对象,如果解析失败,则会返回NULL,同时json_error_t结构体会记录错误信息。接着使用json_object_foreach函数遍历根节点的键值对,获取JSON的数据内容。最后使用json_decref函数释放内存。通过这样简单的步骤,就可以在C语言中解析JSON报文了。