To just add another method to the mix, I would recommend taking a look at Gson . Gson is a library that simplifies serialization and deserialization from Java objects. For example, with your line, you can do this:
// Declare these somewhere that is on the classpath public class ArrayItem{ public int id; public double att1; public boolean att2; } public class Container{ public List<ArrayItem> myArray; } // In your code Gson gson = new Gson(); Container container = gson.fromJson(json, Container.class); for(ArrayItem item : container.myArray){ System.out.println(item.id); // 1, 2, 3 System.out.println(item.att1); // 14.2, 13.2, 13.0 System.out.println(item.att2); // false, false, false }
Similarly, you can also go back very easily.
String jsonString = gson.toJson(container); // jsonString no contains something like this: // {"myArray":[{"id":1,"att1":14.2,"att2":false},{"id":2,"att1":13.2,"att2":false},{"id":3,"att1":13.0,"att2":false}]}
The main advantage that uses something like Gson is that you can now use all the default Java type checking, instead of having to manage attribute names and types yourself. It also allows you to do some fancy things, such as hierarchies of replication types, which make it easy to manage a lot of json messages. It works great with Android, and the jar itself is tiny and does not require any additional dependencies.
Twentymiles
source share