2014-04-11 199 views
0

微調數據我有一些問題...當我嘗試從JSON填充從JSON

此,我json data填充微調數據:

解析銀行和產品正常工作

銀行。 Bank

Product。 Product

提供任何數據 provider

日誌。 log

我應該怎麼做才能解析提供者到android spinner?

+1

你可以試試發佈你的json解析代碼 –

+0

檢查這個http://txs.io/XjQ –

+0

發表問題和解決方案的原因的答案。 –

回答

1

試試這個..

提供商inside產品array

"product": [    // JSONArray 
     {     // JSONObject 
      "id": "1", 
      "value": "PULSA", 
      "name": "Pulsa Telpon", 
      "provider": [ // JSONArray 

代碼

 try { 
       JSONObject jsonObj = new JSONObject(json); 
       if (jsonObj != null) { 
        JSONObject product_obj = jsonObj.getJSONArray("product").getJSONObject(0);       
        JSONArray categories = product_obj 
          .getJSONArray("provider");  
        for (int i = 0; i < categories.length(); i++) { 
         JSONObject catObj = (JSONObject) categories.get(i); 
         Category cat = new Category(catObj.getInt("id"), 
           catObj.getString("name")); 
         categoriesList.add(cat); 
        } 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
+0

謝謝你的lotttttttttttttttttttttttttttttttt先生:) –

+1

@YuliusArdianFebrianto很高興幫助。快樂編碼。 – Hariharan

+0

@YuliusArdianFebrianto再次,您必須爲for循環內的產品創建'JSONArray'。 – Hariharan

1

這裏您試圖從使用json響應json形成的jsonobject中獲取提供者jsonArray

JSONArray categories = jsonObj.getJSONArray("provider");  

然而providerjsonArray不在鹼的JSONObject,但它是在產品jsonArray。這就是爲什麼你沒有收到提供者的任何數據。

解決方案:

首先從基本的JSONObject產品jsonarray。然後爲循環中的每個產品提取提供者jsonarray。

算法或流量:

  1. JSONObject jsonObj = new JSONObject(json); //基地JSON對象

  2. JSONArray bankArray = jsonObj.getJSONArray("bank"); //銀行JSON數組

  3. JSONArray productArray = jsonObj.getJSONArray("product"); //產品JSON數組

    // no. of items in product 
    int arrayLength = productArray.length(); 
    
    for (int i = 0; i < arrayLength; i++) { 
        // get single product object from array 
        JSONObject singleProductObject = productArray 
          .getJSONObject(i); 
        // Get the provider array for every product 
        JSONArray providerArray = singleProductObject.getJSONArray("provider");   
    
    } 
    

這樣您將獲得提供者數據。 希望它可以幫助你。

1

我明白你的JSON對象包含memeber我是一個陣列庫和產品 供應商是內部陣列od產品。 我不知道,如果你照顧這個

試試這個只針對單一產品

JSONArray類= jsonObj.getJSONArray( 「產品」)[0] .getJSONArray( 「提供者」);