2012-04-27 28 views
2

我已經編寫了一個應該返回問題列表的網絡服務 網絡服務工作正常,我正在以JSON獲得響應。 JSON響應如下: {「QuestionList」:[{「answer」:{「options」:[「Andriod is a phone」,「Android is a language」,「Android is a new fast food 「,」Android是移動應用開發工具「]},」id「:」0「,」question「:」什麼是Android?「},{」answer「:{」options「:[」No「,」是「}},」id「:」1「,」question「:」你知道Android嗎?「},{」answer「:{」options「:[」No「,」Yes「,」Yes「,」Yes 「}},」id「:」2「,」question「:」你認識Android嗎?「,{」answer「:{」options「:[」Interface is a contract for a class「,」It is class「 ,「這是一個抽象類」,「以上都不是」]},「id」:「3」,「question」:「什麼是接口?」},{「answer」:{「options」:[ Sonia Gandhi「,」Rahul Gandhi「,」Manmohan Singh「,」Pratibha Patil「]},」id「:」4「,」question「:」誰是印度總理?「},{」answer「:{選項「:[」Haryana「,」Delhi「,」Deheradun「,」Darjeling「]},」id「:」5「,」question「:」什麼是印度的首都?「},{」answer「:{ 「選項」:[「抽象類是一個預先定義的類「,」部分實現一個類「,」至少有一個抽象方法的類「]},」id「:」6「,」問題「:」什麼是抽象類?「}] }如何從JSON響應中填充列表<Object>

現在我有這個響應轉換成一個列表

這裏是問題類

public class Question { 

    private int id; 
    private String question; 
    private Answer answer; 

    public Question() { 
     // TODO Auto-generated constructor stub 
    } 

    public Question(int id, String question, Answer answer) { 
     setId(id); 
     setQuestion(question); 
     setAnswer(answer); 
    } 


    public int getId() { 
     return id; 
    } 


    public void setId(int id) { 
     this.id = id; 
    } 


    public String getQuestion() { 
     return question; 
    } 


    public void setQuestion(String question) { 
     this.question = question; 
    } 


    public Answer getAnswer() { 
     return answer; 
    } 


    public void setAnswer(Answer answer) { 
     this.answer = answer; 
    } 

    @Override 
    public String toString() { 
     return "[ Question id: " + getId() 
       + " Question: " + getQuestion() 
       + " Answer: " + getAnswer() + " ]"; 
    } 

} 

下面是答案類

public class Answer { 

    private List<String> options; 

    public Answer() { 
     // TODO Auto-generated constructor stub 
    } 

    public Answer(List<String> options) { 
     setOptions(options); 
    } 

    public List<String> getOptions() { 
     return options; 
    } 

    public void setOptions(List<String> options) { 
     this.options = options; 
    } 

    @Override 
    public String toString() { 
     return "[ Options: " + getOptions() + " ]"; 
    } 
} 

我現在無法給圖瞭解如何將響應轉換爲列表 請幫助...

+1

你選擇了一個[Json庫](https://github.com/douglascrockford/JSON-java)嗎? – 2012-04-27 05:41:25

+1

使用GSON ..如果json響應格式匹配,它可以直接解析你的類類型。 – Kamal 2012-04-27 05:43:08

回答

2

使用Gson:這將是這麼簡單

Gson gson = new GsonBuilder().create(); 
Answer a = gson.fromJson(response, Answer.class); 
System.out.println(a); 

GSON是一個功能強大的開源庫,允許從POJO的成JSON一個簡單的映射,和周圍的其他方式。

0

使用此代碼

Type collectionType = new TypeToken<List<Your_Object>>() { 
      }.getType(); 

List<Your_Object> your_Object = gson.fromJson(jsonString, collectionType); 

希望這會幫助你。