Я использую Джексона из http://codehaus.org/, и до сих пор он оправдал все мои потребности.
Вы не совсем имеете дело с json как с необработанными строками в arraylist, а скорее с POJO, вот быстрый пример с подмножеством вашего json.
public class JacksonExample {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
String text = "{ \"id\": 8029390, \"user\": { \"username\": \"Skrillex\" } }";
ObjectMapper mapper = new ObjectMapper();
Pojo pojo = mapper.readValue(text, Pojo.class);
System.out.println(pojo.id);
System.out.println(pojo.user.username);
}
}
class Pojo {
public String id;
public User user;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public User getUser() { return user; }
public void setUser(User user) { this.user = user; }
public static class User {
public String username;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
}
}
Mapper создает объект Pojo с заполненными значениями. Затем вы можете использовать этот объект для всего, что вам нужно.
Вот несколько ссылок на проект Джексона:
http://jackson.codehaus.org/
http://wiki.fasterxml.com/JacksonInFiveMinutes
Последний все в одном JAR здесь:
http://jackson.codehaus.org/1.9.1/jackson-all-1.9.1.jar