繁体   English   中英

如何将 JSON 文件转换为对象列表?

[英]How can I convert JSON file into List of objects?

我正在尝试为我的程序和保护程序做一个加载器到 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 读取数据回到我的列表中。 有人可以指导我吗?

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

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

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

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

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

hth
麦普林格尔

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM