如何在JAVA中附加数据JSON
您好,我有一个json文件,其中的数据如下如何在JAVA中附加数据JSON,java,json,Java,Json,您好,我有一个json文件,其中的数据如下 [ { "employee": { "firstName": "Rudi", "lastName": "Anton" } }, { "employee": { "firstName": "Syafira", "lastName": "Zarakaria" } } ] 我想将json数据附加到此文件 我的代码现在没有附加数据,请重新写入文件 帮帮我 这是我的
[
{
"employee": {
"firstName": "Rudi",
"lastName": "Anton"
}
},
{
"employee": {
"firstName": "Syafira",
"lastName": "Zarakaria"
}
}
]
我想将json数据附加到此文件
我的代码现在没有附加数据,请重新写入文件
帮帮我
这是我的密码
JSONObject employeeDetails = new JSONObject();
employeeDetails.put("firstName", "Justin");
employeeDetails.put("lastName", "Saklitinov");
JSONObject employeeObject = new JSONObject();
employeeObject.put("employee", employeeDetails);
JSONObject employeeDetails2 = new JSONObject();
employeeDetails2.put("firstName", "Zara");
employeeDetails2.put("lastName", "Lovez");
JSONObject employeeObject2 = new JSONObject();
employeeObject2.put("employee", employeeDetails2);
//Add employees to list
JSONArray employeeList = new JSONArray();
employeeList.add(employeeObject);
employeeList.add(employeeObject2);
//Write JSON file
try{
String strPath = "employee.json";
File strFile = new File(strPath);
boolean fileCreated = strFile.createNewFile();
//File appending
Writer objWriter = new BufferedWriter(new FileWriter(strFile));
//objWriter.write(employeeList.toJSONString());
objWriter.flush();
objWriter.close();
out.flush();
out.print("OK");
} catch (IOException e) {
e.printStackTrace();
}
是的,如果你是以对象的形式阅读,以对象的形式书写。这是对同一文件的覆盖。请尝试BufferedWriter,以便在附加模式下打开文件
BufferedWriter out = new BufferedWriter(
new FileWriter(fileName, true));
out.write(str);
out.close();
您应该将json文件读入
JSONArray
。将新员工数据添加到此JSONArray
并将其写入文件。我已经修改了你的一些代码
//读取json文件
String jsonFileStr=新字符串(
文件。readAllBytes(路径
.get(“员工JSON路径”),
标准字符集(UTF_8);
System.out.println(jsonflestr);
JSONArray JSONArray=(JSONArray)新的JSONParser().parse(jsonFileStr);
//创建要添加到json文件的员工数据
JSONObject employeeDetails=新的JSONObject();
employeeDetails.put(“firstName”,“Justin”);
employeeDetails.put(“姓氏”、“Saklitinov”);
JSONObject employeeObject=新的JSONObject();
employeeObject.put(“employee”,employeeDetails);
JSONObject employeeDetails2=新的JSONObject();
employeeDetails2.put(“名字”、“Zara”);
employeeDetails2.put(“lastName”、“Lovez”);
JSONObject employeeObject2=新的JSONObject();
employeeObject2.put(“雇员”,EmployeeDetails 2);
//将数据添加到从json文件读取的jsonArray
jsonArray.put(employeeObject);
jsonArray.put(employeeObject2);
//将jsonArray写回文件
字符串strPath=“员工JSON的路径”;
文件strFile=新文件(strPath);
布尔fileCreated=strFile.createNewFile();
Writer objWriter=new BufferedWriter(new FileWriter(strFile));
write(jsonArray.toString());
objWriter.flush();
objWriter.close();
注意:您可能需要重新考虑在json中多次使用同一个键“employee”。我想在同一个文件中附加数据给我一个解决方案我也在使用BufferedWriter,嗯,给我举个例子??尝试BufferedWriter在附加模式下打开一个文件。BufferedWriter out=new BufferedWriter(new FileWriter(fileName,true));写出(str);out.close()@最好用代码更新答案,而不是写注释。而且,这个答案看起来更像是一个评论。您可能希望将两个答案合并为一个答案。请添加数据。但是这个括号[重复[{“雇员”:{“名字”:“鲁迪”,“姓氏”:“安东”},{“雇员”:{“名字”:“西菲拉”,“姓氏”:“扎拉卡里亚”}][{“雇员”:{“名字”:“贾斯汀”,“姓氏”:“萨克利蒂诺夫”},{“雇员”:{“名字”:“扎拉”,“姓氏”:“洛夫兹”}]我想要括号内的json数据。不是重复的括号吗?你能帮我吗?抱歉,我试图以代码的形式回答。但不知何故我不能。thx.StandardCharsets.UTF_8无法解析为一种类型你使用的是哪个版本的java?导入java.nio.charset.StandardCharsets;为你编译吗?好的,我已经导入了java.nio,但再次发现错误“构造函数JSONArray(字符串)未定义”我已经导入:org.json.simple.*sir@Smile你能帮我吗?不知道你在使用json simple。我更新了我的答案以反映这一点。我更新了代码,从json str
JSONArray JSONArray=(JSONArray)new JSONParser().parse创建json数组(jsonflestr);