您好,我以前从未使用过 json-c,我正在尝试解析这个 json 文件:
{
"result": {
"schedules": [
{
"message": "2 mn",
"destination": "La Defense (Grande Arche)"
},
{
"message": "6 mn",
"destination": "La Defense (Grande Arche)"
},
{
"message": "11 mn",
"destination": "La Defense (Grande Arche)"
},
{
"message": "15 mn",
"destination": "La Defense (Grande Arche)"
}
]
},
"_metadata": {
"call": "GET /schedules/metros/1/berault/A",
"date": "2021-12-19T12:36:19+01:00",
"version": 4
}}
我试图将“消息”键的内容转换为 4 个不同的变量并将它们打印为如下字符串:
消息 = 2 分钟 消息2
= 6 分钟消息
3 = 11 分钟
消息4 = 15 分钟
这是我的代码:
#include <json-c/json.h>
#include <stdio.h>
int main(int argc, char **argv) {
FILE *fp;
char buffer[1024];
struct json_object *parsed_json;
struct json_object *message;
struct json_object *message2;
struct json_object *message3;
struct json_object *message4;
fp = fopen("test.json","r");
fread(buffer, 2048, 1, fp);
fclose(fp);
parsed_json = json_tokener_parse(buffer);
json_object_object_get_ex(parsed_json, "message", &message);
json_object_object_get_ex(parsed_json, "message", &message2);
json_object_object_get_ex(parsed_json, "message", &message3);
json_object_object_get_ex(parsed_json, "message", &message4);
printf("Message: %s\n", json_object_get_string(message));
printf("Message: %s\n", json_object_get_string(message2));
printf("Message: %s\n", json_object_get_string(message3));
printf("Message: %s\n", json_object_get_string(message4));
}
但由于我的 json 与教程中的结构不同,因此它不起作用并返回给我:
Message: (null)
Message: (null)
Message: (null)
Message: (null)
Process finished with exit code 0
任何建议高度赞赏!