C语言正则解析json字符串
时间: 2023-09-09 20:06:04 浏览: 81
C语言本身并没有内置的正则表达式解析库,但是可以使用第三方库来解析JSON字符串。以下是一个使用Jansson库解析JSON字符串的示例代码:
```c
#include <stdio.h>
#include <jansson.h>
int main() {
const char *json_string = "{\"name\": \"Alice\", \"age\": 25}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if (!root) {
printf("error: on line %d: %s\n", error.line, error.text);
return 1;
}
if (!json_is_object(root)) {
printf("error: root is not an object\n");
json_decref(root);
return 1;
}
json_t *name = json_object_get(root, "name");
json_t *age = json_object_get(root, "age");
if (!json_is_string(name)) {
printf("error: name is not a string\n");
json_decref(root);
return 1;
}
if (!json_is_integer(age)) {
printf("error: age is not an integer\n");
json_decref(root);
return 1;
}
printf("Name: %s\n", json_string_value(name));
printf("Age: %lld\n", json_integer_value(age));
json_decref(root);
return 0;
}
```
该示例使用`json_loads`函数将JSON字符串解析为`json_t`对象。然后,使用`json_object_get`函数根据键名获取对应的值。最后,使用`json_is_string`和`json_is_integer`函数检查值的类型,并使用`json_string_value`和`json_integer_value`获取字符串和整数值。
阅读全文