【问题标题】:How to read multiple objects in a JSON file with Jackson?如何使用 Jackson 读取 JSON 文件中的多个对象?
【发布时间】:2020-04-11 00:57:50
【问题描述】:

我编写了一些代码,将List<Class> 的内容保存到一个 JSON 文件中,看起来有点像这样:

{ "firstName": "Name", "lastName": "LastName", "Email": "Email" } { "firstName": "Name2", "lastName": "LastName2", "Email": "Email2" }

现在我正在尝试将此文件输入到我的程序中,该程序有效,但只返回了第一个 JSON 对象。这是我的代码:

ObjectMapper mapper = new ObjectMapper();
JsonNode readFile = mapper.readTree(new File("path/to/file.json"));

如何读取完整的 JSON 文件以及如何将其内容添加到上述相同的列表中? 我偶然发现的每个教程等都只使用一个对象来解释这一点。 谢谢!

【问题讨论】:

  • 您的JSON 有效负载无效。如果要存储多个元素,则需要将其存储为 JSON Array - [{...}, {...}]。当您将它们存储为 {...} {...} Jackson 时,读取第一个对象并跳过文件的其余部分。

标签: java json list jackson jackson-databind


【解决方案1】:

你可以这样做:

像这样创建一个用户类:

public class User {
    private String email;
    private String firstName;
    private String lastName;

    // Setters and getters
}

现在你可以这样做了:

String json = yourJson;
ObjectMapper mapper = new ObjectMapper();
User[] userArray = mapper.readValue(json, User[].class);
List<User> userList = Arrays.asList(mapper.readValue(json, User[].class));

【讨论】:

  • 感谢您的回答。我如何能够使用杰克逊图书馆编写数组?因为我是从 JSON 文件而不是字符串读取的。
猜你喜欢
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多