java - JSON 将数据库解析为字符串

标签 java json

我创建了一个使用 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/

相关文章:

java - 尝试在 Eclipse 中对 Java 服务器使用序列化时出现 Android Studio Classnotfound 异常

java - 使用无状态 session 批量插入/更新 - Hibernate

javascript - 使用外部数据时链接到下一页不起作用 - Ionic - AngularJS

json - 如何使用 ConvertTo-Json 将字符串转换为整数?

java - 我可以在 Spring Controller 类中使用路径变量吗?

java - 在哪里可以找到数据文件夹(正在处理)

c# - ServiceStack.Text 和 DeserializeFromString 其中 Json 名称是非法的

JSON Schema 多重从属关系

javascript - 填充数据列表中选项的更好方法

java - Eclipse - 显示 eclipse 如何使用 java.exe 运行项目