为了账号安全,请及时绑定邮箱和手机立即绑定

获取没有数组名称的JSONArray吗?

获取没有数组名称的JSONArray吗?

慕森卡 2019-11-13 13:06:02
我刚接触JSON,请尝试以下教程:http : //p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/#comments我是JSON,C语言,Java和Android的新手,但我正在学习。本教程使用的是我所说的命名数组,但是我将在我的android项目中使用的所有JSON将使用没有命名数组的简单表行。下面是我正在使用的JSON和教程中的地震json的示例。本教程使用以下代码迭代地震数组,并将其转换为JAVA哈希图列表:JSONArray  earthquakes = json.getJSONArray("earthquakes");    for(int i=0;i<earthquakes.length();i++){                                HashMap<String, String> map = new HashMap<String, String>();            JSONObject e = earthquakes.getJSONObject(i);        map.put("id",  String.valueOf(i));        map.put("name", "Earthquake name:" + e.getString("eqid"));        map.put("magnitude", "Magnitude: " +  e.getString("magnitude"));        mylist.add(map);            }我的问题是,json.getJSONArray("")如果我的JSON如下所示,该如何使用?我可以转换其余代码,getJSONArray("strJsonArrayName")如果我没有,我只需要知道如何使用来加载JSON strJsonArrayName。我的JSON(未命名数组)[  {    "cnt":1,    "name":"American",    "pk":7  },  {    "cnt":2,    "name":"Celebrities",    "pk":3  },  {    "cnt":1,    "name":"Female",    "pk":2  },  {    "cnt":1,    "name":"Language",    "pk":8  },  {    "cnt":1,    "name":"Male",    "pk":1  },  {    "cnt":1,    "name":"Region",    "pk":9  }]教程的JSON(命名数组){  "earthquakes":[    {      "eqid":"c0001xgp",      "magnitude":8.8,      "lng":142.369,      "src":"us",      "datetime":"2011-03-11 04:46:23",      "depth":24.4,      "lat":38.322    },    {      "eqid":"c000905e",      "magnitude":8.6,      "lng":93.0632,      "src":"us",      "datetime":"2012-04-11 06:38:37",      "depth":22.9,      "lat":2.311    },    {      "eqid":"2007hear",      "magnitude":8.4,      "lng":101.3815,      "src":"us",      "datetime":"2007-09-12 09:10:26",      "depth":30,      "lat":-4.5172    },    {      "eqid":"c00090da",      "magnitude":8.2,      "lng":92.4522,      "src":"us",      "datetime":"2012-04-11 08:43:09",      "depth":16.4,      "lat":0.7731    },
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您根本不需要调用json.getJSONArray(),因为您正在使用的JSON 是一个数组。因此,请勿构造JSONObject; 的实例。使用一个JSONArray。这样就足够了:


// ...

JSONArray json = new JSONArray(result);

// ...


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

    HashMap<String, String> map = new HashMap<String, String>();    

    JSONObject e = json.getJSONObject(i);


    map.put("id",  String.valueOf(i));

    map.put("name", "Earthquake name:" + e.getString("eqid"));

    map.put("magnitude", "Magnitude: " +  e.getString("magnitude"));

    mylist.add(map);            

}

您不能使用与本教程中完全相同的方法,因为您要处理的JSON需要JSONArray从根解析为,而不是JSONObject。


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 806 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信