2012-04-27 3 views
2

質問リストを返すべきWebサービスを作成しました Webサービスが正常に動作していて、JSONで応答が得られました。JSONレスポンスからリスト<Object>を入力するには

JSONレスポンスは次のとおりです。 {"質問リスト":[{"answer":{"options":["Andriodは電話です"、 "Androidは言語です"、 "Androidは新しいファーストフード"" Androidはモバイルアプリケーション開発ツール "]}、" id ":" 0 "、" question ":" Androidとは何ですか? "}、{" answer ":{" options ":[" No "、" Yes "}"、 "id": "1"、 "question": "Androidを知っていますか?"}、{"answer":{"options":["No"、 "Yes"、 "Yes"、 "Yes "}"、 "id": "2"、 "question": "あなたはAndroidを知っていますか?"}、{"answer":{"options":["インタフェースはクラスの契約です"、 "クラスです" ""、 "": ""、 ""、 ""、 ""、 ""インドのPMは誰ですか?}、{"答え":{"}"、 "Sonia Gandhi"、 "Rahul Gandhi"、 "Manmohan Singh"、 "Pratibha Patil" 「インドの首都とは何ですか?」}、{"答え": "インドの首都とは何ですか?}"、 "イスラエル"、 " "options":["抽象クラス]、 "id": "6"、 "question": "抽象クラスとは何か"}]、 "抽象メソッドを少なくとも1つ持つクラス" }

今、私はここで一覧に

をこの応答を変換する必要がありますが、質問クラス

ある
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() + " ]"; 
    } 
} 

私は数字にできないですしていますレスポンスをリスト01に変換する方法Plsは...

+1

まだ[Jsonライブラリ](https://github.com/douglascrockford/JSON-java)を選択しましたか? –

+1

はGSONを使用しています.jsonの応答形式が一致すると、クラスタイプに直接解析できます。 – Kamal

答えて

2

使用Gsonを助ける:それはGson

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

のように簡単になりますJSONへのPOJOから簡単にマッピングし、他の方法で回避することができます強力なオープンソースのライブラリです。このコード

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

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

0

使用すると、これはあなたを助けることを願っています。

関連する問題