我在將我的ArrayList
存儲到我的共享首選項時遇到問題。我決定將ArrayList<HashMap<String, String>>
轉換爲JSONArray
,以便下次需要時可以解析JSON,因爲我無法將ArrayList>存儲爲字符串並將其恢復爲原始形式。ArrayList <HashMap <String,String >>無法正確轉換爲API9的JSONArray
現在發生的事情是,ArrayList
已成功轉換爲JSON格式,用於運行在API 19中的設備,但奇怪的是它無法正確轉換爲我的模擬器設備在API 9中運行。當我檢查原因時,這是因爲轉換後的字符串格式不正確會導致錯誤。通過格式不正確,我的意思是,代替具有[{"key":"value"}]
的格式被轉換成[{key:value}]
其中所述雙引號被除去這是需要的JSON導致此錯誤消息:
org.json.JSONException: Unterminated object at character
下面的代碼:
private void storeStatusInSharedPreference(ArrayList<HashMap<String, String>> items){
SharedPreferences my_prefs = getActivity().getSharedPreferences("my_prefs", getActivity().MODE_PRIVATE);
JSONArray result = new JSONArray(items);
my_prefs.edit().putString("test", result.toString()).apply();
}
我不知道,如果同樣的事情也會對其他設備/版本發生,因爲我只在這兩個測試這就是爲什麼我沒有申請任何API版本檢查來處理它。