Java将ArrayList转换为字符串并返回ArrayList?

lis*_*aro 11 java string android list arraylist

我想将一个ArrayList保存到SharedPreferences,所以我需要把它变成一个字符串然后回来,这就是我正在做的事情:

// Save to shared preferences
SharedPreferences sharedPref = this.getPreferences(Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = this.getPreferences(Activity.MODE_PRIVATE).edit();
editor.putString("myAppsArr", myAppsArr.toString());
editor.commit();
Run Code Online (Sandbox Code Playgroud)

我可以检索它String arrayString = sharedPref.getString("yourKey", null);但我不知道如何将arrayString转换回ArrayList.怎么做到呢?


我的数组看起来像:

[item1,item2,item3]
Run Code Online (Sandbox Code Playgroud)

Dhr*_*ola 34

你有2个选择:

  1. 手动解析字符串并重新创建arraylist.这将非常繁琐.
  2. 使用像Google的Gson库这样的JSON库来存储和检索JSON字符串对象.这是一个轻量级的图书馆,备受推崇和受欢迎.在您的情况下,它将是一个理想的解决方案,只需要最少的工作 例如,

    // How to store JSON string
    Gson gson = new Gson();
    // This can be any object. Does not have to be an arraylist.
    String json = gson.toJson(myAppsArr);
    
    // How to retrieve your Java object back from the string
    Gson gson = new Gson();
    DataObject obj = gson.fromJson(arrayString, ArrayList.class);
    
    Run Code Online (Sandbox Code Playgroud)

  • 它适用于“ArrayList<SomeCustomObject>”和“gson.fromJson(arrayString, ArrayList.class)”吗? (2认同)