在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报文了。