How to get multidimensional array using json in android

I have a multidimensional array that I want to get using JSON in android. For this, I have the following JSON structure:

[ [ { "name": "Banking", "data": [ { "vendor_name": "SBI", "vendor_id": "1" }, { "vendor_name": "ICICI", "vendor_id": "2" }, { "vendor_name": "BOB", "vendor_id": "3" } ], "count": 4 } ] ] 

I want to get "name" , vendor_name , vendor_id in my lines in android. But I do not understand how to do this. Please let me know how to get this.

+5
source share
2 answers
  try { jsonObj = new JSONObject(YourString); } catch (JSONException e) { Log.v("Error in Parser", " " + e); } try{ String name=jsonObj.getString("name"); Data = jsonObj.getJSONArray("data"); for (int i = 0; i < Data.length(); i++) { JSONObject jsonObj2 = Data.getJSONObject(j); String vName = jsonObj2.getString("vendor_name"); String vId=jsonObj2.getString("vendor_id"); } }catch(Exception e) { } 
+5
source

Try this way, hope it helps you solve your problem.

 try{ JSONArray jsonArray = new JSONArray("[[{\"name\":\"Banking\",\"data\":[{\"vendor_name\":\"SBI\",\"vendor_id\":\"1\"},{\"vendor_name\":\"ICICI\",\"vendor_id\":\"2\"},{\"vendor_name\":\"BOB\",\"vendor_id\":\"3\"}],\"count\":4}]]"); HashMap<String,Object> responseMap = new HashMap<String, Object>(); ArrayList<HashMap<String,String>> dataList = new ArrayList<HashMap<String, String>>(); responseMap.put("name",jsonArray.getJSONArray(0).getJSONObject(0).getString("name")); for(int i=0;i<jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").length();i++){ HashMap<String,String> dataRow = new HashMap<String, String>(); dataRow.put("vendor_name",jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").getJSONObject(i).getString("vendor_name")); dataRow.put("vendor_id",jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").getJSONObject(i).getString("vendor_id")); dataList.add(dataRow); } responseMap.put("data",dataList); responseMap.put("count",jsonArray.getJSONArray(0).getJSONObject(0).getString("count")); System.out.print("name : "+responseMap.get("name").toString()); ArrayList<HashMap<String,String>> list = (ArrayList<HashMap<String,String>>)responseMap.get("data"); for (HashMap<String,String> row : list){ System.out.print("vendor_name : "+row.get("count")); System.out.print("vendor_id : "+row.get("count")); } System.out.print("count : "+responseMap.get("count").toString()); }catch (Throwable e){ e.printStackTrace(); } 
+2
source

Source: https://habr.com/ru/post/1202568/


All Articles