Просто бросить еще один метод в смесь здесь, я хотел бы рекомендовать взглянуть на Gson. Gson - это библиотека, которая упрощает сериализацию и десериализацию из объектов Java. Например, с вашей строкой вы можете сделать это:
// 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
}
Аналогичным образом, вы также можете легко вернуться назад.
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}]}
Основное преимущество, что с помощью что-то вроде Gson обеспечивает то, что теперь вы можете использовать все проверки типов в Java по умолчанию, вместо того, чтобы управлять именами атрибутов и типов самостоятельно. Это также позволяет вам делать некоторые причудливые вещи, такие как иерархии типов репликации, которые облегчают управление большим количеством сообщений json. Он отлично работает с Android, а сам банку крошечный и не требует никаких дополнительных зависимостей.
Строка - это объект JSON, а не массив (обратите внимание на внешние фигурные скобки). – Henry