2016-12-30 151 views
0

我有以下的json數組。我想用改裝Android - Retrofit json解析

[ 
    { 
    "todo_id": "1", 
    "todo_content": "Homework", 
    "date": "2016-05-05", 
    "iscomplete": "1", 
    "imagelink": "Lighthouse.jpg" 
    }, 
    { 
    "todo_id": "2", 
    "todo_content": "exam", 
    "date": "2015-04-21", 
    "iscomplete": "0", 
    "imagelink": "Desert.jpg" 
    }, 
    { 
    "todo_id": "3", 
    "todo_content": "Lab report", 
    "date": "2014-08-29", 
    "iscomplete": "1", 
    "imagelink": "FB_IMG_14700753538617403.jpg" 
    } 
] 

當我使用JSON解析改造解析它在android系統,但它不解析todo_id和todo_content關鍵值,其中,因爲它表明其他鍵值日期,iscomplete和ImageLink的 這是我的android代碼改造響應

public void onResponse(Call<List<AndroidVersion>> call, Response<List<AndroidVersion>> response) { 
        if (response.isSuccess()) { 
         try { 
          for (int i = 0; i < response.body().size(); i++) { 
           AndroidVersion ver = new AndroidVersion(); 
           ver.setTodoContent(response.body().get(i).getTodoContent()); 
           ver.setTodoId(response.body().get(i).getTodoId()); 
           ver.setDate(response.body().get(i).getDate()); 
           ver.setIscomplete(response.body().get(i).getIscomplete()); 
           ver.setImagelink(response.body().get(i).getImagelink()); 
           arrayList.add(ver); 
           Log.v("ret",response.body().get(i).toString()); 
          } 
          adapter = new DataAdapter(arrayList); 
          recyclerView.setAdapter(adapter); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 

        } 
       } 
+0

請發表您的ANDROIDVERSION類 –

+1

使用@SerializedName解析,比你的領域應符合JSON的名字。將json字段名稱放入註釋中。 –

回答

1
public class Example { 

@SerializedName("todo_id") 
@Expose 
private String todoId; 
@SerializedName("todo_content") 
@Expose 
private String todoContent; 
@SerializedName("date") 
@Expose 
private String date; 
@SerializedName("iscomplete") 
@Expose 
private String iscomplete; 
@SerializedName("imagelink") 
@Expose 
private String imagelink; 

public String getTodoId() { 
return todoId; 
} 

public void setTodoId(String todoId) { 
this.todoId = todoId; 
} 

public String getTodoContent() { 
return todoContent; 
} 

public void setTodoContent(String todoContent) { 
this.todoContent = todoContent; 
} 

public String getDate() { 
return date; 
} 

public void setDate(String date) { 
this.date = date; 
} 

public String getIscomplete() { 
return iscomplete; 
} 

public void setIscomplete(String iscomplete) { 
this.iscomplete = iscomplete; 
} 

public String getImagelink() { 
return imagelink; 
} 

public void setImagelink(String imagelink) { 
this.imagelink = imagelink; 
} 

} 

它應該爲你工作

+0

我錯了Pojo類 –

1

使用序列化名稱。

您的JSON響應爲參數名「todo_id」所以在你的POJO類,你就不得不提到它,因爲它是按照POJO類的例子:

public class Pojo { 
    private int todo_id; 
    private String todo_content; 

    public int getTodo_id() { 
     return todo_id; 
    } 

    public void setTodo_id(int todo_id) { 
     this.todo_id = todo_id; 
    } 

    public String getTodo_content() { 
     return todo_content; 
    } 

    public void setTodo_content(String todo_content) { 
     this.todo_content = todo_content; 
    } 

} 

名稱應匹配。希望這有助於!

+0

哦,現在我想通了我的錯誤 –

+0

很棒... !!!您可以在andorid studio itslef中使用GSON Format插件,它會以序列化格式創建pojo類。 – Mrinmoy

0

轉到this link並在那裏粘貼您的回覆以生成適合您的回覆的POJO類。這也會產生getter和setter方法。希望這可以幫助。

+0

感謝這個鏈接 –