gpt4 book ai didi

c++ - 段错误读取json文件

转载 作者:行者123 更新时间:2023-11-28 07:22:54 24 4
gpt4 key购买 nike

我需要像这样读取包含在 json 文件中的信息:

{"first":10, "second":"0", "P1":"1.e-20","P2":"1000","P3":"1000","P4":"1000","P5":"1"}

由于我没有解决这个问题的经验,所以我首先尝试使用这些行下方的短代码。它确实编译没有问题,但在执行时会返回一个段错误。文件 general.json 位于同一文件夹中。如果我评论最后一行,则 json 文件中包含的信息将正确打印在屏幕上。谁能告诉我我做错了什么?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fstream> // fstream.h in old versions of g++
#include <iostream> //para cout
#include <sstream>
#include <json/json.h>

using namespace std;

int main() {
struct json_object *new_json, *json_arr, *json_reg, *json_field;
string line;
stringstream jsonfile;

ifstream json("file.json", ios::in);
{getline(json, line); do {jsonfile << line;} while (getline(json, line));}
json.close();
cout << jsonfile.str().c_str();
new_json=json_tokener_parse(jsonfile.str().c_str());
json_field=json_object_object_get(json_reg, "first");
}

最佳答案

您正在使用 json_reg 指针,但未对其进行初始化,并且该函数取消了对它的引用。您(很可能)正在使用 json-c其中:

  • json_object_object_get 在对象上调用 json_object_object_get_ex

  • json_object_object_get_ex switch(jso->o_type) 取消引用无效指针

关于c++ - 段错误读取json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19186236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com