2013-01-10 25 views
0

JSON數組通過名稱獲得JSON對象我有JSON解析這樣針對Android

名稱

  • 品牌

  • 值RECOM

    • 價值b
  • MPN

  • 值RECOM
    • 值的
    • 值b

我可以顯示在列表視圖中該值(品牌和MPN)。我想如果點擊品牌,它會在列表中顯示價值推薦(值爲a和b)。如果我點擊mpn,它也會在列表中顯示來自名稱2的值推薦值(值a和b)。任何人都可以給我建議?感謝

這是我的JSON解析

array (
    'features' => 
    array (
    'Recommendations' => 
     array (
     'id' => 
     'NameRecommendation' => 
     array (
      0 => 
      array (
      'Name' => 'Brand', 
      ),  
      'ValueRecommendation' => 
      array (
       0 => 
       array (
       'Value' => 'Unbranded/Generic', 
       ), 

       1 => 
       array (
       'Value' => 'Canon', 
       ), 

       2 => 
       array (
       'Value' => 'Nikon', 
       ), 

      ), 
    1 => 
      array (
      'Name' => 'MPN', 
      ), 
       'ValueRecommendation' => 
      array (
       0 => 
       array (
       'Value' => 'mpn1', 
       ), 

       1 => 
       array (
       'Value' => 'aas', 
       ), 

       2 => 
       array (
       'Value' => 'aab', 
       ), 
+0

使用onItemclick()的時候,並得到有關任何你想去的地方該項目,並更新數據//。 – Raj

+0

我知道使用onItemClick,我想問如何獲得這個json數據? – user1920582

+0

你的意思是'{「Name」:[「a」,「b」,{「recom」:[「a」,「b」]}]}'?簡單地提供你的json,上面的樹可能會引起誤解。 –

回答

0

jsonobject讀取的總數據可以在JSONArray對象閱讀本

這裏是例子

JSONArray jsonArr = new JSONArray(jsonStr); // this is you string as formatted in json array if not parse by this construct it will throw the jsonparseexception 

現在通過迭代器遍歷此json的每個對象

for(int i=0;i<jsonArr.length();i++){ 
    JSONObject jsonObj = jsonArr.get(i).getJsonObject("value recom"); 
    String a = jsonObj.getString("a"); // here is your data for a object 
    String b = jsonObj.getString("b"); // here is your data for b object 
} 
0

當使用谷歌gson。

var getRowData = 
[{ 
    "dayOfWeek": "Sun", 
    "date": "11-Mar-2012", 
    "los": "1", 
    "specialEvent": "", 
    "lrv": "0" 
}, 
{ 
    "dayOfWeek": "Mon", 
    "date": "", 
    "los": "2", 
    "specialEvent": "", 
    "lrv": "0.16" 
}]; 

    JsonElement root = new JsonParser().parse(request.getParameter("getRowData")); 
    JsonArray jsonArray = root.getAsJsonArray(); 
    JsonObject jsonObject1 = jsonArray.get(0).getAsJsonObject(); 
    String dayOfWeek = jsonObject1.get("dayOfWeek").toString(); 

使用上的ListView傑克遜

JsonFactory f = new JsonFactory(); 
       ObjectMapper mapper = new ObjectMapper(); 
      JsonParser jp = f.createJsonParser(getRowData); 
      // advance stream to START_ARRAY first: 
      jp.nextToken(); 
      // and then each time, advance to opening START_OBJECT 
     while (jp.nextToken() == JsonToken.START_OBJECT) { 
      Map<String,Object> userData = mapper.readValue(jp, Map.class); 
      userData.get("dayOfWeek"); 
      // process 
      // after binding, stream points to closing END_OBJECT 
     }