Я пытаюсь десериализовать JSONArray для List. Для этого я пытаюсь использовать Gson, но я не понимаю, почему это не работает, и все значения JSON равны нулю.Преобразование JSONArray в список <Object>?
Как я мог это сделать?
JSON
{ "result" : [
{ "Noticia" : {
"created" : "2015-08-20 19:58:49",
"descricao" : "tttttt",
"id" : "19",
"image" : null,
"titulo" : "ddddd",
"usuario" : "FERNANDO PAIVA"
} },
{ "Noticia" : {
"created" : "2015-08-20 19:59:57",
"descricao" : "hhhhhhhh",
"id" : "20",
"image" : "logo.png",
"titulo" : "TITULO DA NOTICIA",
"usuario" : "FERNANDO PAIVA"
} }
] }
Десериализует
List<Noticia> lista = new ArrayList<Noticia>();
Gson gson = new Gson();
JSONArray array = obj.getJSONArray("result");
Type listType = new TypeToken<List<Noticia>>() {}.getType();
lista = gson.fromJson(array.toString(), listType);
//testing - size = 2 but value Titulo is null
Log.i("LISTSIZE->", lista.size() +"");
for(Noticia n:lista){
Log.i("TITULO", n.getTitulo());
}
Класс Noticia
public class Noticia implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String titulo;
private String descricao;
private String usuario;
private Date created;
private String image;
Тот факт, что вы выполняете array.toString(), выглядит для меня странным. Я бы подумал, возможно, итерации на JSONArray и преобразовать каждый элемент в объект Noticia? –
Я не вижу метод getJSONArray в JsonObject (https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/JsonObject.html). Пожалуйста, прочтите мой ответ. Надеюсь, это должно решить проблему. – Atul