只是为了在这里混合另一种方法,我建议您看看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,而且 jar 本身很小,不需要任何额外的依赖项。