The short answer for your question is that you have to suppress it in order for it to go away. The problem is not about what you put using the addAll method, it is because of the JSONArray has no way to guarantee type safety if type is not provided.
JSONArray inherits a non-parametrized ArrayList and the addAll method is defined as:
public boolean addAll(java.util.Collection<? extends E> es)
Without providing the type parameter, E falls back to Object, which makes the addAll method a method that can add a collection that contains ANYTHING on top of the existing collections. Therefore, you can do something like this:
List<Dog> dogs = new ArrayList<Dog>();
dogs.add(new Chiwawa());
List<Car> cars = new ArrayList<Car>();
cars.add(new BMW());
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(dogs);
jsonArray.addAll(cars);
Dogs and Cars are added together to the same JSONArray (ArrayList) and treated as barely Object. If you do something like this, when you retrieve any of the object back, you have no way to tell whether it is a dog or a car. This is why the warning exists.
By using the generic type parameter (e.g. Dog), the addAll definition will be like:
public boolean addAll(java.util.Collection<? extends Dog> es)
This make sure the parameter can only accept a collection of Dog and Dog's child class. Therefore when you retrieve it from the collection, it is safe to assign the retrieve object to Dog.
The warning is not because of you did something wrong. It is because of the JSONArray inherits a non-parametrized Collection. Feel free to suppress it.