我的问题是,每次我调用方法“公共无效文件写入器”,我的数据都会错误地转录到相关的JSON文件中。这样,我就不可能再找回它们了。我可以做些什么来将数据保存为正确的JSON格式?
我的方法如下:
public void fileWriter(String name, double temp, double feels_like, double temp_min, double temp_max) throws IOException {
LocalDateTime myDateObj = LocalDateTime.now();
DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String formattedDate = myDateObj.format(myFormatObj);
JSONObject citiesObj = new JSONObject();
citiesObj.put("Call N°", ++cityCounter);
citiesObj.put("Name", name);
citiesObj.put("Time", formattedDate);
JSONObject listOfTemps = new JSONObject();
listOfTemps.put("temp", temp);
listOfTemps.put("feels_like", feels_like);
listOfTemps.put("temp_min", temp_min);
listOfTemps.put("temp_max", temp_max);
citiesObj.put("Main"+cityCounter, listOfTemps);
try {
File file = new File("FileCities.json");
BufferedWriter bufferedWriter = null;
if (!file.exists()) {
file.createNewFile();
System.out.println("JSON file created:");
System.out.println("");
}
bufferedWriter = new BufferedWriter(new FileWriter(new File("FileCities.json"), true));
bufferedWriter.write(MessageFormat.format("{0}\n", citiesObj.toJSONString()));
bufferedWriter.close();
} catch (IOException e) {
System.out.println("ERROR");
System.out.println("--> File not updated");
e.printStackTrace();
}
}
而文件的输出为:
{"Main1":{"temp":-8.0,"temp_min":-9.0,"feels_like":-8.0,"temp_max":-7.0},"Time":"10-01-2022 14:11:16","Call N°":1,"Name":"Rome"}
{"Main2":{"temp":-9.0,"temp_min":-10.0,"feels_like":-9.0,"temp_max":-9.0},"Time":"10-01-2022 14:11:16","Call N°":2,"Name":"Toronto"}
我不清楚你的问题是什么。但在任何情况下,我看到你使用组织。json库,非常简单,但实际上应该只用于学习json。要在JSON中序列化/反序列化对象,我强烈建议使用Jackson JSON库或Gson库。但是,我建议使用我自己的库,它有一个特性,允许您将任何对象序列化为JSON strgring,并从该字符串还原回来。该库称为MgntUtils,它具有以下方法:
public static <T> T readObjectFromJsonString(java.lang.String jsonString,
java.lang.Class<T> type)
throws java.io.IOException
和
public static java.lang.String writeObjectToJsonString(java.lang.Object object)
throws com.fasterxml.jackson.core.JsonProcessingException
它们使用起来很简单。请参见JsonUtils类的Javadoc页面
您可以在Maven工件或Github上找到该库,包括源代码和Javadoc。因此,您可以创建任何Java类,获取其实例并将其作为字符串写入文件,然后将其读回并将该字符串作为类的实例进行解析
问题内容: 我有一个文本区域,它将其内容插入到SQL表中。有没有一种方法可以保留文本的格式,然后在HTML中使用它? 问题答案: 如果您要保留Enter键,请用 替换char 10和char 13 使用SQL时(请注意输入) 这导致
问题内容: 我看到过很多不同的文章,涉及到您应该以何种方式将对象序列化到文件,并且所有这些在本质上在执行方式和最佳实践方面存在冲突。因此,这就是我要保存的内容: 我们可以假设configArgs的大小已知,我需要制作一个文件,这就是到目前为止的内容。 问题答案: 好吧,我想,您想将对象直接写入文件 我只是提供了重要的代码。通过异常处理来实现。
问题内容: 我将如何继续追加数据?我有这个: 我想向它添加另一个对象,例如: 这是我使用的代码: 我真的不知道如何继续添加它,但是也许其他人知道吗? 问题答案: 您将无法使用文件追加操作来执行此操作。文件追加操作只能在末尾添加文本,而不能在中间插入文本。这使得不可能使用file-append来保持JSON有效。 我可以想到两种选择: 将整个文件读入一个对象,添加您的对象,然后重写整个文件(性能不佳
问题内容: 我正在尝试将数据快速保存到plist文件中,但是读取plist时保存的数据没有显示出来。这是我正在使用的代码。 编辑:我听说做到这一点的最佳方法是写入documents目录,所以我的问题是我应该如何写入该目录中的文件? 问题答案: 显然该文件不在可写位置,因此我在documents目录中创建了该文件。 然后,必须从文档目录中读取它。
问题内容: 我正在使用SQL Server 2008,并且想要将表数据转换为json格式。我可以通过触发查询直接将其转换吗? 问题答案: SQL Server 2016中添加了对格式化查询结果的内置支持,它将在Azure数据库中可用。在旧版本中,您将需要使用CLR或一些繁重的TSQL,例如: 通过TSQL从SQL Server查询中产生JSON文档
我正在尝试用常规提取来提取强文本json,然后用格式化的json将其发布到下一个请求正文数据中。对于我提取的json,它们没有格式化,我只是想知道是否有任何功能或方法来格式化它? 使用正则表达式提取器获取请求(提取粗体部分) 在下一个请求中发布提取的数据(从上面的请求中提取的JSON数据用正则表达式显示为整个字符串,只是想知道如何在这个正文数据中格式化?)