在Java中加载Json文件时出现问题[已关闭]

qij5mzcb  于 2023-01-10  发布在  Java
关注(0)|答案(1)|浏览(232)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
我在读一个json时遇到了一个问题,这个json是空的,读的时候没有给我正确的值。有人知道这是怎么回事吗?这里有一个最小的可重复的例子:public student(String name, int age, boolean isFailing),我有一个数组列表,叫做classroom,json看起来像这样:

[
  {
    "name": "bob",
    "age": 14,
    "isFailing": true
  }
]

当我尝试使用以下方法读取实际文件时,问题出现了:

public static ArrayList<Student> loadClassroom() throws IOException{
    ObjectMapper mapper = new ObjectMapper();
    Student[] classroom = mapper.readValue(new File("students.json"), Student[].class);
    return new ArrayList<>(Arrays.asList(classroom));
}

当我调用实际的方法时,它会"清除"实际的文件students.json(文件变为1行,并且只显示[]。我的最终目标是,例如,json包含多个student对象,我想读取所有对象,并将所有对象放入student类的数组中。
有人知道是怎么回事吗?谢谢!

f8rj6qna

f8rj6qna1#

我通过以下代码修复了构造函数:

public Student(String name, int age, boolean isPassing){
    this.name = name;
    this.age = age;
    this.isPassing = isPassing;
}

对此:

@JsonCreator
public Student(@JsonProperty("name") String name, @JsonProperty("age") int age, @JsonProperty("isPassing") boolean isPassing) {
    this.name = name;
    this.age = age;
    this.isPassing = isPassing;
}

相关问题