【问题标题】:How can I convert JSON file into List of objects?如何将 JSON 文件转换为对象列表?
【发布时间】:2021-06-06 10:48:30
【问题描述】:

我正在尝试为我的程序做一个加载器,并且保存到 json 的工作,但读者没有。我基本上是在将我的对象列表转换为 ArrayList ProjectArr 到正在工作的 json,现在我要关闭终端并将信息加载到我最初空白的 ProjectArr 列表中,这样我就可以添加保存的数据加载功能。这是我的读者:

public static ArrayList<Project> MapReaderforProject() {
    ObjectMapper objectMapperforProject = new ObjectMapper();
    String jsonfile = "C:/Users/elmm/Desktop/DS Project/DsProject/target/test1.json";
    File file = new File("C:/Users/elmm/Desktop/DS Project/DsProject/target/test1.json");
    try {
        ProjectArr = objectMapperforProject.readValue(jsonfile,new TypeReference<ArrayList<Project>>(){});
    }
    catch (JsonMappingException e) {
    } catch (JsonProcessingException e) {
    }
    System.out.println(ProjectArr.toString());
    return ProjectArr;
}

但是当我调用它时,即使 JSON 文件正在工作并且有信息,它也没有读取任何内容,只是打印 [],空列表基本上意味着它没有将 JSON 中的数据读回我的列表中。有人可以指导我吗?

【问题讨论】:

    标签: java json list object


    【解决方案1】:

    缺少一些上下文信息,以便为您提供更多帮助。例如,ObjectMapper 是什么?它来自图书馆(以及来自哪个图书馆)还是您自己编写的?

    但到目前为止我已经认识到:在第 3 行中,您创建了一个包含文件名的 String。在第 4 行中,您创建了一个具有相同文件名的 File 对象。您可以使用您在上面创建的行的String

    在第 6 行中,您在 ObjectMapper 实例上调用 readValue 方法并传递在第 3 行中创建的 String,其中包含文件名。这种方法真的想要一个带有文件名的String吗?如果这是来自 Jackson 库的 ObjectMapper,则需要将 JSON 代码解析为 readValue 调用的第一个参数,而不是文件名。

    所以看起来在第 4 行之后您需要代码来读取您应该传递给 readValue 方法的文件内容。

    查看这个简短的教程:https://www.baeldung.com/jackson-object-mapper-tutorial


    麦普林格尔

    【讨论】:

    • 它来自杰克逊图书馆,不是我从头开始写的。我看过这个教程,这就是为什么我有点困惑,我已经做了同样的事情,但无济于事。我同时拥有 JSON 路径字符串和文件的原因是因为我认为问题可能来自那里,所以我都尝试了。
    • 你试过我给你看的解决方案了吗?你成功了吗?
    • 我之前读过 baeldung 教程。我都是照着做的。
    • 您尝试过解决方案吗?在我的回答中,我给了你解决问题的方法!
    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多