gpt4 book ai didi

java - 使用java读取JSON文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:27 24 4
gpt4 key购买 nike

我在使用 Java 从 JSON 文件读取“电子邮件”字段时遇到问题。当我尝试阅读它时,它只读取第一个,即使我放了多个,我尝试了不同的东西,但似乎什么也没发生。有什么办法解决吗?这是代码:

这是登录方法,我将有关客户的所有数据写入 JSON 文件

JSONObject customer = new JSONObject();
JSONArray list = new JSONArray();
customer.put("Email", emailCliente.getText());
customer.put("Tipo", "Cliente");
customer.put("Name", nomeCliente.getText());
customer.put("Surname", cognomeCliente.getText());
customer.put("BirthDate", dataNascitaCliente.getText());
customer.put("Address", indirizzoCliente.getText());
customer.put("Phone", telefonoCliente.getText());
customer.put("Password", pswCliente.getText());

list.add(customer);

try {
FileOutputStream file = new FileOutputStream("Db.json", true);
ObjectOutputStream fileWriter = new ObjectOutputStream(file);
fileWriter.writeObject(list);
fileWriter.flush();
fileWriter.close();
}

这是从 JSON 文件读取的代码:

public class Read implements Serializable{
public static void main(String[] args) throws IOException {
try{
FileInputStream reader = new FileInputStream("Db.json");
ObjectInputStream ois = new ObjectInputStream(reader);
Object customer = (Object) ois.readObject();
JSONArray tmp = (JSONArray) (customer);
for(Object obj : tmp) {
JSONObject tmpObj = (JSONObject) obj;
System.out.println(tmpObj.get("Email"));
}
ois.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} }

最佳答案

您正在使用 org.json 库来创建和读取 JSON 数据。

不要。那个库非常糟糕。

我知道 json.org 列出了它。

一个很好的选择是 jackson ,或者gson如果你想要一个替代方案。正如 @Raúl Garcia 在评论中提到的,here is a good baeldung tutorial on jackson .

注意:DataInputStreamDataOutputStream 用于 java 的序列化机制,它不是 JSON,并且您在任何情况下都不需要它们,因此,请按照教程,扔掉您的“读取”代码并从头开始。另外,你的异常代码有问题;异常包含 4 位信息(类型、消息、跟踪和原因);你扔掉了 4 个有用信息中的 3 个,然后盲目地继续,这可能会在你的日志中产生更多困惑,使得很难找出问题所在。停止这样做;只是向前“抛出”此类异常。如果您确实无法做到这一点,请修复您的 IDE 以生成 catch (Foo e) {throw new RuntimeException(e);} 作为默认的 catch block 。 从不 e.printStackTrace();

关于java - 使用java读取JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59719764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com