我是 JSON 新手。 我有数据列表,当我执行文件时可以在控制台中显示这些数据。我想使用 JSON 数组和 JSON 对象将该数据存储在 JSON 文件中。我可以将数据存储在 JSON 文件中,但我必须手动将每个数据放入数组中,这非常耗时,而且我确实有很多数据需要输入。 所以,我正在寻找一种读取数据的方法,而不是在控制台中打印数据,我想将其存储在 JSON 文件中。
这就是它在数组中的样子。
{
"employee":
{
"id": "100",
"name": "ABC",
"address": "New York"
}
}
关于如何做到这一点有什么建议吗?
更新
我在控制台上打印的数据已经从 Excel 文件导入。
最佳答案
创建一个员工类
public class Employee {
private String employee;
public String id, name, address;
public Employee(String id, String name, String address) {
this.employee = "employee";
this.id = id;
this.name = name;
this.address = address;
}
Employee(String string) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public String getEmployee() {
return employee;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setEmployee(String employee) {
this.employee = employee;
}
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
主要内容
import org.json.JSONObject;
import java.util.ArrayList;
import java.io.*;
public class JavaApplication1 {
public static void main(String[] args) {
ArrayList<Employee> array = new ArrayList<Employee>();
for(int i = 0 ; i < 100; i++){
array.add(new Employee(i+"", i+"", i+""));
}
JSONArray jsonArray = new JSONArray();
for (int i = 0;i < array.size() ; i++) {
JSONObject obj = new JSONObject();
JSONObject objItem = new JSONObject();
objItem.put("id", array.get(i).getId());
objItem.put("name", array.get(i).getName());
objItem.put("address", array.get(i).getAddress());
obj.put("employee", objItem);
jsonArray.put(obj);
}
try (FileWriter file = new FileWriter("your path")) {
file.write(jsonArray.toString());
System.out.println("Successfully Copied JSON Object to File...");
System.out.println("\nJSON Object: " + jsonArray);
} catch(Exception e){
System.out.println(e);
}
}
}
关于java - 使用 Java 将数据存储在 JSON 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58988210/