java - 如何使用 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();
}
}
}
}
解决方案
您可以在列表中添加人员,然后将列表写入文件,如下所示,
List<Staff> staffList = new LinkedList<>()
for(int i = 0; i < 4; i++) {
Staff staff = createStaff();
staffList.add(staff);
}
mapper.writeValue(file, staffList);
希望能帮助到你。
推荐阅读
- javascript - React-TypeScript - 类型'(调度:调度)上不存在属性'then'
) => 承诺 ' - graphql - 如何监控 GraphQL 请求,例如使用 Charles 监控 Rest API
- java - 在 Hibernate/JPA 中保存一个带有子对象的对象 - @OneToMany
- flutter - Flutter/Dart:参数类型“bool Function(MyStateNotifier)”不能分配给参数类型“dynamic Function(dynamic)”
- android - msalclientexception 重定向 URI 不匹配
- python - TensorFlow 中图像分类模型的均方误差
- spring-boot - Swagger UI 结合 Maven OpenAPI Codegen 忽略注释
- java - 从 Java 调用 SQL 函数并设置参数
- spring-boot - 基于标志的日志记录以禁用/启用在 JPA 中选择 SQL 查询日志
- php - 如何在 php jquery 中将 ajax 响应转换为 pdf 文档?