2013-05-30 54 views
1

我正在寫一個文件的JSON響應,當我從文本文件中檢索它時,json對象之前有一個null(真的很奇怪)。JSON響應值爲null在前面。

05-30 16:35:16.454: W/System.err(21734): org.json.JSONException: Value null of type org.json.JSONObject$1 cannot be converted to JSONObject 
05-30 16:35:16.454: W/System.err(21734): at org.json.JSON.typeMismatch(JSON.java:111) 
05-30 16:35:16.454: W/System.err(21734): at org.json.JSONObject.<init>(JSONObject.java:158) 
05-30 16:35:16.454: W/System.err(21734): at org.json.JSONObject.<init>(JSONObject.java:171) 

然後在打印出字符串時顯示。

05-30 16:35:16.454: I/json data in ProfileActivity(21734): null{"id":1488,"email":"[email protected]","full_name":"Jon 

這是我如何保存和檢索我的數據。

public void saveToInternal(String data, String name, Context context){ 
     ContextWrapper contextWrapper = new ContextWrapper(context); 
     File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE); 
     myInternalFile = new File(directory , name); 
     try { 
      FileOutputStream fos = new FileOutputStream(myInternalFile); 
      fos.write(data.getBytes()); 
      fos.close(); 
      } catch (IOException e) { 
      e.printStackTrace(); 
      } 
     Log.i("data saved", "data named " + name + "saved to directory."); 
} 

public String getInternalData(String filename, Context context){ 
     ContextWrapper contextWrapper = new ContextWrapper(context); 
     File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE); 
     myInternalFile = new File(directory , filename); 
    String myData = null; 
    try { 
      FileInputStream fis = new FileInputStream(myInternalFile); 
      DataInputStream in = new DataInputStream(fis); 
      BufferedReader br = 
      new BufferedReader(new InputStreamReader(in)); 
      String strLine; 
      while ((strLine = br.readLine()) != null) { 
      myData = myData + strLine; 
      } 
      in.close(); 
      } catch (IOException e) { 
      e.printStackTrace(); 
      } 

    return myData; 

} 
+0

它似乎爲空追加到您的原始JSON字符串 – Pragnani

+0

伊莫這是一個後端問題 – Blackbelt

+0

它不是追加,因爲我嘗試了字符串拆分。由於某種原因,null在字符串的前面被打印爲「類型」。不是後端問題,因爲當我從服務器檢索它時,它不包含隨機的空值。 – jimbob

回答

0

我想通了!

我改了一行:

String myData = null;

發送至:

String myData =「」;

myData被附加到另一個字符串,但是如果您將一個空值附加到一個字符串中,您會在數據的前面得到一個奇怪的不可移除空值。