提取JSON数组元素的过程

时间:2012-03-26 02:48:33

标签: android arrays json

我从服务器到Android应用程序有以下数组响应。

[
{"1":
[{"name":"IEEE Meeting"},{"date":"2012-04-24 10:30:00"},{"Room":"ZACH102"},{"descr":"Final Meeting"},{"D":0.0057}]},
{"2":
[{"name":"Senior Design Demo"},{"date":"2012-04-24 16:30:00"},{"Room":"ZACH111A"},{"descr":"Demo"},{"D":0.019}]}
]

我在收到回复后执行转换为JSONArray。

arr = new JSONArray(sb.toString());

我如何提取名称,日期,房间等各个元素?

3 个答案:

答案 0 :(得分:0)

您是否查看了JSONArray的文档?

从文档中,内部表单是一个对象,具有getopt方法,用于按索引访问值,put方法用于添加或替换值。值可以是以下任何类型:BooleanJSONArrayJSONObjectNumberStringJSONObject.NULL对象。

如果可以找到一个get方法,则返回一个值,如果找不到,则抛出异常。 opt方法返回默认值而不是抛出异常,因此对于获取可选值非常有用。

泛型get()opt()方法返回一个可以转换或查询类型的对象。还有类型化的getopt方法可以为您进行类型检查和输入强制。

答案 1 :(得分:0)

你可以得到像这样的所有参数

JSONArray main_array = json.getJSONArray("array");
for(int i=0;i<main_array.length();i++)  {               
    main_object = main_array.getJSONObject(i);
    String name = main_object.getString("name");
    String date = main_object.getString("date");
}

答案 2 :(得分:0)

所以基本上,这个顺序 对象数组1,2    - 每个对象1,2都有一组不同的对象名称,日期等。

  1. 将整个数据转换为字符串。
  2. 创建一个新的JSONArray(字符串)。
  3. 循环遍历数组。 (你将使用length()获得计数。)
  4. 使用getJSONObject()获取第一个对象。
  5. 使用getJSONArray在第一个对象中获取数组。
  6. 现在再次使用length(),您将获得其中的JSONObject数量。
  7. 遍历num个对象并先调用get JSONObject(),然后调用getString()或getDouble()。
  8. 重复其他对象列表并重复步骤4 - 7。