我正在尝试理解执行标题说明的过程。 我在具有Gson依赖关系的Java中执行此操作。
我正在从我使用的另一服务(以JSON格式)获取信息。因此,我想获取该信息,在其中放置一些其他信息(例如日期/时间),然后将其用于搜索目的。 该过程是:
所以我读了文件:
JsonReader reader = new JsonReader(new FileReader(filename));
我现在必须将其转换为字符串,然后更新该字符串,以便最终将其写回到json吗?
如果它不存在,那么我创建一个空文件,然后可以用Json / Gson数据更新它吗?还是我必须创建一个Json文件?
try {
File jsonFile = new File("C:\\uploads\\datasets");
if (jsonFile.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
请原谅我可能犯的任何新手/愚蠢错误,我试图理解JSON。实际上,它背后的哲学。
答案 0 :(得分:0)
JSON代表JavaScript Object Notation,它不过是格式化数据的一种方式。
取自here:
JSON建立在两个结构上:
- 名称/值对的集合。用各种语言,这是 实现为对象,记录,结构,字典,哈希表,键控 列表或关联数组。
- 值的有序列表。多数情况 语言,可以实现为数组,向量,列表或序列。
要解决您的问题:
获取JSON信息(说“ id”)并将其添加到您拥有的JSON文件中
JsonReader reader = new JsonReader(new FileReader(inputFilename));
reader.beginArray();
reader.beginObject();
long id = -1;
while (reader.hasNext()) {
String value = reader.nextName();
if (value.equals("id")) {
id = reader.nextLong();
} else {
reader.skipValue();
}
reader.endObject();
reader.endArray();
向该JSON文件添加更多信息(请说“上传日期和时间”)
这将获得YYYY.MM.DD-HH.MM.SS
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
最后,保存该更新的JSON文件
创建一个JsonWriter
。
JsonWriter writer = new JsonWriter(new FileWriter(outputFilename));
writer.beginArray();
writer.beginObject();
writer.name("id").value(id);
writer.name("timestamp").value(timestamp);
writer.endObject();
writer.endArray();