我创建了一个使用 JSON 作为数据库的应用程序,它看起来写得很好,文件读取器可以很好地读取数据库,但我似乎无法从数据库值中获取数据库值。
这是我的解析代码:
String userEnteredString = UserEntered.getText();
String userHomeLocal = Tutschedule.userHome;
Reader dataFile = null;
try {
dataFile = new FileReader(userHomeLocal+"/Users/"+userEnteredString+".data");
} catch (FileNotFoundException ex) {
Logger.getLogger(LoginForm.class.getName()).log(Level.SEVERE, null, ex);
}
String dbData = dataFile.toString();
try {
JSONObject dbObject = new JSONObject(dbData);
} catch (JSONException ex) {
Logger.getLogger(LoginForm.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(dbData);
JSONObject dataInfo = new JSONObject(dbData);
String password = dataInfo.getString("password");
System.out.println(password);
BufferedReader buffered = new BufferedReader(dataFile);
String test = null;
try {
test = buffered.readLine();
} catch (IOException ex) {
Logger.getLogger(LoginForm.class.getName()).log(Level.SEVERE, null, ex);
}
问题是当我打印密码时它没有打印任何内容,导致我认为密码字段没有被处理。
这是数据库的示例:
{"username":"user","password":"test"}
谢谢!
最佳答案
我不相信 FileReader.toString() 正在做你认为它正在做的事情。 FileReader 从 object 继承 toString,这意味着它只会打印出引用,而不是文件的内容,但您却试图将其解析为 JSON。在这种情况下,您应该会收到一条严重的日志消息。
为了读取文件的内容,您应该在阅读器上使用 read
方法,或者让自己轻松使用 commons-io FileUtils#readFileToString 或类似的方法。
关于java - JSON 将数据库解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631562/