2015-06-21 25 views
1

我從JSONArray.put(String)得到意想不到的結果。使用來自緩衝讀取器的JSONArray.put(字符串)的意外結果

我的代碼:

public JSONArray readedID = new JSONArray(); 

public void load() throws IOException, JSONException { 
    String FILENAME = "news"; 
    String line; 
    InputStream inputStream = openFileInput(FILENAME); 
    InputStreamReader isr = new InputStreamReader(inputStream); 
    BufferedReader reader = new BufferedReader(isr); 
    while ((line = reader.readLine()) != null) { 
     readedID.put(line); 
    } 
    inputStream.close(); 
    Log.d("vk", "news.readedID: "+readedID); 
    TextView res = (TextView)findViewById(R.id.textView); 
    res.setText("readedID: "+readedID); 
} 

public void save() throws IOException { 
    String FILENAME = "news"; 
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
    fos.write(news.loadedID.toString().getBytes()); 
    fos.close(); 
} 

// Fill loadedID 
for (int i = 0; i < json.length(); i++){ 
    loadedID.put(json.getJSONObject(i).get("id").toString()); 
} 

這裏是loadedID

["3316","3336","3335","3331","3327","3326","3319".... ] 

所以這是我期望從readedID

["3316","3336","3335","3331","3327","3326","3319" .... ] 

但是,這是我所得到的:

["\"3316\",\"3336\",\"3335\",\"3331\",\"3327\",\"3326\",\"3319\" .... "]"] 

這是怎麼發生的?

+0

向我們顯示文件內容的簡短版本。 –

+0

替換'readedID.put(line);''用'readedID = new JSONArray(line);' – Madhan

+0

Madhan謝謝你! –

回答

0

呃......這是因爲你製作了一個List Item到一個String。

現在每個「變成一個\」,以便它是一個字符。

只是簡單地用新的替換舊的JSONArray:

readedID = new JSONArray(line); 

或者,也許,如果你願意,你可以添加項目。

(抱歉寫錯了,我在我的智能手機上)