JSON Java put()返回字符串,不是void?put()不工作;((
在上面的代码中,在for循环中,我尝试系统打印.put并返回一个值而不是一个void函数的json.put()。。。 我只想使用.put()替换json文件中的值。 传递的参数全部正确,已逐一检查 下面是我的数据库文件JSON Java put()返回字符串,不是void?put()不工作;((,java,json,Java,Json,在上面的代码中,在for循环中,我尝试系统打印.put并返回一个值而不是一个void函数的json.put()。。。 我只想使用.put()替换json文件中的值。 传递的参数全部正确,已逐一检查 下面是我的数据库文件 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import org.json.simple.JSONArray; import org.j
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
class Edit_Details_OnlyAdmin_Loop {
public void Edit_Details_OnlyAdmin_Loop_main(int Option, String newVal, String credUserName, String credPwd) {
try {
JSONParser parser = new JSONParser();
JSONArray a = (JSONArray) parser.parse(new FileReader(Main.databasepath));
// System.out.println("a is"+a);
switch (Option) {
case 1:
for (Object o : a) {
// System.out.println("o is"+o);
JSONObject User = (JSONObject) o;
// System.out.println("user is:" + User);
String Username = (String) User.get("Username");
String Pwd = (String) User.get("Password");
// JSONObject new1= (JSONObject) User.get("Name");
if (credUserName.equals(Username) && credPwd.equals(Pwd)) {
// System.out.println(User.remove("Name"));
User.put("Name", newVal);
// System.out.println("updated successfully");
}
}
break;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
上面的代码演示了如何更改存储为键“Name”的值并替换为新的输入数据
put()也没有按预期工作,没有任何捕获错误如果要查看文件中的任何实际更改,需要将更改后的JSON数据写入磁盘 使用与以下类似的代码(我不能完全确定某些数据类型,因此可能会有轻微的编译错误):
我真的不明白你的问题。put返回值,不需要字符串“the put()未按预期工作”…因为它工作并且不会引发错误?你期望它产生什么?什么是“选项”?@Stultuske helo Stultuske,put函数不工作,它没有替换json对象中的值问题是,put()不起作用以及如何解决。。appreciated@Stultuske我希望我的数据库对象,该值将被替换并更新为新的onehi@sina,我已经尝试过,但我意识到它将整个文件删除为空白。请将该代码添加到您的问题中,因为这可能是您的错误所在。您将无法看到错误除非您将其写入磁盘,否则请在文件中执行nge。到目前为止,您发布的代码看起来不错(除非您没有写入磁盘).嗨,新浪,我现在知道了。我没有任何步骤来访问文件,对吗?然后我想,需要补充什么,对不起,我不明白你的评论。你能试着解释一下吗?我成功地解决了,新浪,谢谢,我爱你,非常感谢你,。。
[{"Role":"1","AssesType":"","Username":"","Module":"","Marks":"","Name":"q","Password":"123","Programme":""},{"Role":"3","AssesType":"1","Username":"tp054660","Module":"2","Marks":"","Name":"yaphanyee","Password":"123","Programme":"1"},{"Role":"3","AssesType":"2","Username":"tp054660","Module":"2","Marks":"","Name":"yaphanyee","Password":"123","Programme":"1"},{"Role":"1","AssesType":"","Username":"jsn","Module":"","Marks":"","Name":"jason","Password":"123","Programme":""},{"Role":"1","AssesType":"","Username":"123","Module":"","Marks":"","Name":"tp054660","Password":"123","Programme":""}]
try (FileWriter file = new FileWriter(Main.databasepath)) {
file.write(a.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}