2013-05-14 19 views
-1

我有一些JSON數據,如下圖所示:如何解析JSON到對象中的Android

{ 
    "pp": { 
     "status_marital_pmg": "BELUM MENIKAH", 
     "nama_pmg": "IWEN LENDER", 
     "kerjab_pmg": "-", 
     "pendidikan_pmg": "S1", 
     "agama_pmg": "KRISTEN KATOLIK", 
     "bidang_industri_pmg": "JASA KEUANGAN", 
     "warga_pmg": "INDONESIA", 
     "hubungan_pmg_ttg": "Diri Sendiri", 
     "pendanaana_pmg": "GAJI", 
     "pendanaan_pmg": "GAJI", 
     "usia_pmg": 33, 
     "penghasilan_pmg": "> RP. 50 JUTA - RP. 100 JUTA", 
     "kelamin_pmg": "Pria", 
     "tujuan_pmg": "INVESTASI", 
     "tujuana_pmg": "INVESTASI", 
     "kerja_pmg": "KARYAWAN", 
     "bidang_industria_pmg": "JASAKEUANGAN" 
    } 
} 

我嘗試使用下面的類來映射這個JSON:

public class VariabelViewer { 
    private String nama_pmg; 
    private String pendidikan_pmg; 
    private String warga_pmg; 
    private String usia_pmg; 
    private String status_marital_pmg; 
    private String kelamin_pmg; 
    private String agama_pmg; 
    private String tujuan_pmg; 
    private String tujuana_pmg; 
    private String penghasilan_pmg; 
    private String pendanaan_pmg; 
    private String pendanaana_pmg; 
    private String bidang_industria_pmg; 
    private String hubungan_pmg_ttg; 

    public VariabelViewer(String nama_pmg, String pendidikan_pmg, 
      String warga_pmg, String usia_pmg, String status_marital_pmg, 
      String kelamin_pmg, String agama_pmg, String tujuan_pmg, 
      String tujuana_pmg, String penghasilan_pmg, String pendanaan_pmg, 
      String pendanaana_pmg, String bidang_industria_pmg, 
      String hubungan_pmg_ttg) { 

     this.nama_pmg = nama_pmg; 
     this.pendidikan_pmg = pendidikan_pmg; 
     this.warga_pmg = warga_pmg; 
     this.usia_pmg = usia_pmg; 
     this.status_marital_pmg = status_marital_pmg; 
     this.kelamin_pmg = kelamin_pmg; 
     this.agama_pmg = agama_pmg; 
     this.tujuan_pmg = tujuan_pmg; 
     this.tujuana_pmg = tujuana_pmg; 
     this.penghasilan_pmg = penghasilan_pmg; 
     this.pendanaan_pmg = pendanaan_pmg; 
     this.pendanaana_pmg = pendanaana_pmg; 
     this.bidang_industria_pmg = bidang_industria_pmg; 
     this.hubungan_pmg_ttg = hubungan_pmg_ttg; 
    } 

    public String getNama_pmg() { 
     return nama_pmg; 
    } 

    public String getPendidikan_pmg() { 
     return pendidikan_pmg; 
    } 

    public String getWarga_pmg() { 
     return warga_pmg; 
    } 

    public String getUsia_pmg() { 
     return usia_pmg; 
    } 

    public String getStatus_marital_pmg() { 
     return status_marital_pmg; 
    } 

    public String getKelamin_pmg() { 
     return kelamin_pmg; 
    } 

    public String getAgama_pmg() { 
     return agama_pmg; 
    } 

    public String getTujuan_pmg() { 
     return tujuan_pmg; 
    } 

    public String getTujuana_pmg() { 
     return tujuana_pmg; 
    } 

    public String getPenghasilan_pmg() { 
     return penghasilan_pmg; 
    } 

    public String getPendanaan_pmg() { 
     return pendanaan_pmg; 
    } 

    public String getPendanaana_pmg() { 
     return pendanaana_pmg; 
    } 

    public String getBidangindustria_pmg() { 
     return bidang_industria_pmg; 
    } 

    public String getHubungan_pmg_ttg() { 
     return hubungan_pmg_ttg; 
    } 
} 

我不知道如何去實際地在我的代碼中聲明正確的類並解析數據。我認爲我的JSON代表一個JSON數組,它也包含另一個JSON數組,但我的理解可能是錯誤的?任何人都可以告訴我如何解析這個?謝謝。

回答

1
try { 
      JSONObject jsobj = new JSONObject("your string goes here"); 
      JSONObject ppobj = jsobj.getJSONObject("pp"); 
      String status_marital_pmg = ppobj.getString("status_marital_pmg"); 
      Integer usia_pmg = ppobj.getInt("usia_pmg"); 
     } catch (JSONException e) { 
     } 
+0

怎麼樣我的課VariabelViewer,我以前做..?它不使用? – 2013-05-14 02:34:15

+0

好吧,您可以添加構造函數或方法,它將JSONObject作爲參數並在那裏進行解析。 – Sergi0 2013-05-14 02:53:37

+0

eoke,我會試試.. – 2013-05-14 03:10:44

2

覺得我的JSON是包含JSON陣列太JSON陣列,是我 理解錯了嗎?

是的你錯了,因爲當前的Json字符串只包含JSONObject而不是JSONArray。所以你首先需要從它轉換電流字符串的JSONObject,然後提取所有的對象爲:

JSONObject json=new JSONObject(<current json string>); 

// get all key names from JSONObject 
JSONArray allnames=json.names(); 

for(int i=0;i<allnames.length;i++){ 

    JSONObject jsonobj=json.getJSONObject(allnames[i]); 

    // get all values from inner JSONObject and store in any data structure 
    //get status_marital_pmg 
    String str_status_marital_pmg=jsonobj.optString("status_marital_pmg"); 
    .... 

} 
+0

我的班級VariabelViewer,我以前做過..?它不使用? – 2013-05-14 02:24:31

+0

@AoyamaNanami:你可以使用VariabelViewer類作爲getter/setter – 2013-05-14 02:26:36

+0

@AoyamaNanami:你需要創建VariabelViewer類型的ArrayList,並且通過傳遞jsonobject中的所有值來創建VariabelViewer的對象,然後將其存儲在ArrayList中以供進一步使用 – 2013-05-14 02:29:31