从哈希数组创建JSONArray

时间:2018-03-01 15:56:17

标签: java arrays

我有一个像这样的哈希数组

[
  {"id":"1","name":"Apple","category":"fruit"},
  {"id":"2","name":"Ball","category":"toy"},
  {"id":"3","name":"Cat","category":"animal"},
  ..
  ..
  {"id":"500","name":"yoyo","category":"toy"},
  ..
]

我有一个接受JsonArray的方法。我怎样才能传递这个,以便以后我可以搜索特定类型的类别toy并返回其索引?

由于它包含引号,所以我甚至无法弄清楚如何直接将其作为新的JsonArray()传递。

1 个答案:

答案 0 :(得分:2)

将您的JSON字符串转换为像这样的JSONArray对象

JSONArray jsonArray = new JSONArray(jsonString);

使用该方法查找特定类别的所有索引

public List<Integer> getIndexesOfCategory(JSONArray jsonArray,String category) {
        List<Integer> indexes = new ArrayList<>();

        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            if (category.equals(jsonObject.getString("category"))) {
                indexes.add(i);
            }
        }
        return indexes;
    }

像这样使用

List<Integer> indexes = getIndexesOfCategory(jsonArray,"toy");