2011-01-21 3 views
0

alt textAndroidはJSONデータをHashTableに解析しますか?

私はJSONデータとしてWebサービスからデータを取得します。表示されたデータは画像に表示されます。基本的にQuestionnaireと呼ばれるクラスで、QuestionnaireIdとQuestionnaireNameの2つのプロパティがあります。私が呼び出すWebサービスメソッドは、このクラスのアンケートのコレクションを返します。

私はできないHashTableにこのデータを解析しようとしています。このデータを解析してHashtable<QuestionnaireId,QuestionnaireName>に入れることを助けてください。あなたはこの線に沿って何かをお勧めします

答えて

1

:私はこの方法でいくつかのJSON文字列を解析

Hashtable<Integer,String> table = new Hashtable<Integer,String>(); 

/* ... */ 

JsonObject root = new JsonObject(json_string); 
JsonArray questions = root.getJsonArray("d"); 
for(int i = 0; i < questions.length(); i++) { 
    JsonObject question = questions.getJsonObject(i); 
    int id = question.optInt("QuestionnaireId", -1); 
    String name = question.optString("QuestionnaireName"); 
    table.put(id, name); 
} 

(大雑把...)

+0

ありがとうございましたperfecty :) – user581157

3

を、希望はあなたに

public static Vector<MyObject> getImagesFromJson(String jos){ 
     Vector<MyObject> images = null; 
     try{ 

      JSONObject jo = new JSONObject(jos); 

      JSONArray array = jo.getJSONArray("images"); 
      if(array != null && array.length() > 0){ 
       images = new Vector<MyObject>(); 
      } 
      for (int i=0;i<array.length();i++) { 
       MyObject object = new MyObject(); 
       object.setEpigrafe(array.getJSONObject(i).get("epigrafe").toString()); 
       object.setId(array.getJSONObject(i).getInt("id")); 
       object.setUrl(array.getJSONObject(i).get("url").toString()); 
       images.add(object); 
      } 
     }catch(Exception e){ 
      images = null; 
      e.printStackTrace(); 
     } 
     return images; 
    } 

where MyObjects is defined as: 

    private int id; 
    private String url; 
    private String epigrafe; 
0

私はそれをM POJOにデータをマップし、そのPOJOでListを記入する必要があります。

このようにあなたのPOJOを定義してください。

public class Questionnaire { 

    private int id; 
    private String name; 

    public Questionnaire() { 
     setId(0); 
     setName(null); 
    } 

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

    public int getId() { 
     return id; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 
} 

Questionnaireオブジェクトのリストを作成します。

新しいQuestionnaireオブジェクトは、必要なときに毎回作成し、解析済みデータをセッターを使用してマップします。

Questionnaireオブジェクトが1つ完了したら、それをリストに追加します。

関連する問題