0

データベースに 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"}

ありがとう!

4

1 に答える 1

3

FileReader.toString() があなたが思っていることをしているとは思いません。FileReader はオブジェクトから toString を継承します。つまり、ファイルの内容ではなく参照を出力するだけですが、それを JSON として解析しようとしています。その場合でも、重大なログ メッセージが表示されるはずです。

ファイルの内容を読み取るにはread、リーダーでメソッドを使用するか、自分で簡単にして commons-io FileUtils#readFileToString などを使用する必要があります。

于 2012-11-29T18:00:12.177 に答える