我从JSONArray.put(String)
得到了意外的结果。
我的代码:
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" .... "]"]
为什么会发生这种情况?
嗯。。。这是因为您将列表项设置为字符串。
现在每个"变成一个\",所以它是一个字符。
只需将旧的JSONArray替换为新的:
readedID = new JSONArray(line);
或者,如果你愿意,你可以添加一个项目。
(很抱歉写错了,我在智能手机上)