解析json 二维数组 c语言
时间: 2024-09-28 11:16:19 浏览: 50
C++调用cjson解析数组
解析JSON二维数组在C语言中通常需要借助第三方库,如`json-c`或者`libjson`等,因为C语言本身并没有内置的JSON处理功能。这里是一个基本的示例,展示如何使用`json-c`库解析JSON字符串中的二维数组:
```c
#include <stdio.h>
#include <stdlib.h>
#include "json/json.h"
// 示例 JSON 字符串
const char *json_string = "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]";
int main() {
// 初始化 JSON 库
json_object *root = json_tokener_parse(json_string);
if (!root) {
fprintf(stderr, "Failed to parse JSON\n");
return 1;
}
// 获取根节点的值,应该是一个数组
json_array *array = json_object_get_array(root);
// 遍历二维数组
for (size_t i = 0; i < json_array_length(array); i++) {
json_object *inner_array = json_array_get(array, i);
// 再次获取每个内部数组
size_t inner_size = json_array_length(inner_array);
for (size_t j = 0; j < inner_size; j++) {
int value = json_object_get_int(json_array_get(inner_array, j));
printf("Element %d in sub-array at index %zu is %d\n", value, i, j);
}
}
// 清理并释放资源
json_object_put(root);
json_object_put(array);
return 0;
}
```
在这个例子中,我们首先解析JSON字符串得到一个数组,然后遍历这个数组的每一个元素,将其视为另一个数组,并提取其中的整数值。
阅读全文