How to use gson to convert json to arraylist if the list contain different class?

后端 未结 2 2075
难免孤独
难免孤独 2021-01-11 12:28

I want to store an arraylist to disk, so I use gson to convert it to string

    ArrayList anim=new ArrayList();
    Cat c=new Cat         


        
相关标签:
2条回答
  • 2021-01-11 12:46

    you can use the below code to convert json to corresponding list of objects

    TypeToken<List<Animal>> token = new TypeToken<List<Animal>>() {};
    List<Animal> animals = gson.fromJson(data, token.getType());
    
    0 讨论(0)
  • 2021-01-11 12:51

    Kotlin example:

    val gson = Gson()
    val typeToken = object : TypeToken<ArrayList<Animal>>() {}
    val list = gson.fromJson<ArrayList<Animal>>(value, typeToken.type)
    

    Faster way:

    val gson = Gson()
    val array = gson.fromJson<Array<Animal>>(value, Array<Animal>::class.java)
    val arrayList = ArrayList(array.toMutableList())
    
    0 讨论(0)
提交回复
热议问题