内容简介
json程序demo
相关库下载及配置
json库下载
链接: link
配置并编译 cJSON: 使用交叉编译器进行配置和编译。
./configure --host=arm-linux-gnueabi --prefix=/path/to/installation/directory
make && make install
运行
源程序
#include <stdio.h>
#include <stdlib.h>
#include "./cJSON-1.7.18/cJSON.h"
int main() {
// 创建一个 JSON 对象
cJSON *root = cJSON_CreateObject();
cJSON *array = cJSON_CreateArray();
// 向数组中添加一些元素
cJSON_AddItemToArray(array, cJSON_CreateString("value1"));
cJSON_AddItemToArray(array, cJSON_CreateString("value2"));
cJSON_AddItemToObject(root, "arrayKey", array);
// 将 JSON 对象转换为字符串
char *jsonStr = cJSON_Print(root);
printf("Generated JSON:\n%s\n", jsonStr);
// 解析 JSON 字符串
cJSON *parsed = cJSON_Parse(jsonStr);
// 获取解析后的数组
cJSON *parsedArray = cJSON_GetObjectItem(parsed, "arrayKey");
if (parsedArray != NULL && cJSON_IsArray(parsedArray)) {
int arraySize = cJSON_GetArraySize(parsedArray);
printf("Parsed Array:\n");
for (int i = 0; i < arraySize; i++) {
cJSON *item = cJSON_GetArrayItem(parsedArray, i);
if (item != NULL && cJSON_IsString(item)) {
printf("%s\n", item->valuestring);
}
}
}
// 释放资源
cJSON_Delete(root);
cJSON_Delete(parsed);
free(jsonStr);
return 0;
}
编译源程序
gcc main.c cJSON-1.7.18/cJSON.c -o main
运行结果

2237

被折叠的 条评论
为什么被折叠?



