首页 > 解决方案 > 如何使用 Java 和 Jackson 附加到 JSON

问题描述

我正在尝试一个简单的测试,其中代码附加了一些 json 条目,但是每次都会被覆盖(运行后 json 文件中只有 1 个条目)。我知道我需要以某种方式使用“[]”在 JSON 中创建一个数组,但是我将如何去做呢?另外,有没有更好的方法来做到这一点?我一直在四处寻找,每个库看起来都很笨拙,有很多用户编写的代码。谢谢

public class REEEE {

private static Staff createStaff() {

    Staff staff = new Staff();

    staff.setName("mkyong");
    staff.setAge(38);
    staff.setPosition(new String[] { "Founder", "CTO", "Writer" });
    Map<String, Double> salary = new HashMap() {
        {
            put("2010", 10000.69);
        }
    };
    staff.setSalary(salary);
    staff.setSkills(Arrays.asList("java", "python", "node", "kotlin"));

    return staff;
}

public static void main(String[] args) throws IOException {
    ObjectMapper mapper = new ObjectMapper();

    File file = new File("src//j.json");        
    for(int i = 0; i < 4; i++) {
        Staff staff = createStaff();

        try {
            // Java objects to JSON file
            mapper.writeValue(file, staff);

            // Java objects to JSON string - compact-print
            String jsonString = mapper.writeValueAsString(staff);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }
}

标签: javajsondatabaseeclipsejackson

解决方案


您可以在列表中添加人员,然后将列表写入文件,如下所示,

List<Staff> staffList = new LinkedList<>()
for(int i = 0; i < 4; i++) {
    Staff staff = createStaff();
    staffList.add(staff);
}
mapper.writeValue(file, staffList);

希望能帮助到你。


推荐阅读