【问题标题】:How to retrieve multidimensional array using json in android [closed]如何在android中使用json检索多维数组[关闭]
【发布时间】:2014-11-08 14:05:22
【问题描述】:

我有一个多维数组,我想在 android 中使用 JSON 进行检索。为此,我有以下 JSON 结构:

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

我想在我的安卓字符串中获得"name",vendor_name,vendor_id。但我不知道如何做到这一点。请告诉我如何找回它。

【问题讨论】:

标签: java android arrays json multidimensional-array


【解决方案1】:
     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)
{
}

【讨论】:

  • 试试上面的代码你会得到想要的输出!!!
  • 不要让他们复制粘贴代码,至少让他们知道你的 sn-p 中发生了什么
  • 我希望您能解释一下 Data 类是什么,因为 Android Studio 要求您导入多个包。虽然我很感谢您的回答,但如果您能提供一些解释,将会更有帮助。
【解决方案2】:

试试这个方法,希望能帮助你解决问题。

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();
}

【讨论】:

  • 只是友好的建议,你不觉得有必要解释一下至少非常简单的示例以便新手可以学习吗?
  • @KickButtowski,亲爱的,我没有放任何不熟悉或不稳定的代码,所以任何人都知道 json 很容易理解我在这里所做的一切,最后感谢您的建议
  • 那些不使用的人呢......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多