JSONArray遍历

简介: JSONArray遍历
// for循环
for (int i = 0; i < jsonArr.size(); i++) {
   JSONObject jsonObject = jsonArr.getJSONObject(i);
    String name = jsonObject.getString("name");
    Integer age = (Integer) jsonObject.get("age");
    System.out.println("name:"+name+";age:"+age);
}
// stream
String str="[{\"name\":\"tom\"},{\"name\":\"tim\"},{\"name\":\"jim\"},{\"name\":\"sam\"},{\"name\":\"ram\"},{\"name\":\"lam\"}]";
JSONArray jsonArray = JSONArray.parseArray(str);
System.out.println(jsonArray);
Set<String> set=new HashSet<>();
jsonArray.stream().filter(Objects::nonNull).forEach(json->{
    set.add(((JSONObject) json).getString("name"));
});
System.out.println(set);
String json="[{'name':'a','age':'18','value':1},{'name':'b','age':'18','value':2}" +
                ",{'name':'b','age':'18','value':3},{'name':'d','age':'18','value':4}" +
                ",{'name':'b','age':'18','value':4},{'name':'d','age':'18','value':5}]";
JSONArray j1=JSON.parseArray(json);
Long collect1 = j1.stream().filter(t -> ((JSONObject) t).getString("age").equals("18")).count();
Long collect2 = j1.stream().filter(t -> ((JSONObject) t).getString("age").equals("18")).map(t -> ((JSONObject) t).getString("name")).distinct().count();
System.out.println("去重前:"+collect1);
System.out.println("去重后:"+collect2);


相关文章
|
7月前
|
JSON Java 数据格式
json转换大全 1.8遍历
json转换大全 1.8遍历
|
7月前
|
存储 C# 索引
C# | 比较IEnumerable、List、数组
IEnumerable`定义了一组用于枚举集合的方法,包括`GetEnumerator`方法,该方法返回一个实现了`IEnumerator`接口的对象,用于枚举集合中的每个元素。`List`和数组都可以使用`foreach`循环来遍历其中的元素,这是因为它们都实现了`IEnumerable`接口。 由于数组在内存中开辟了一段连续的空间,因此可以直接通过索引访问元素,访问速度很快。而 List 则需要通过指针或引用来访问元素,速度相对较慢。 由于数组的大小是固定的,当需要添加或删除元素时,需要重新创建一个新数组,将原数组中的元素复制到新数组中,并添加或删除元素。
244 0
C# | 比较IEnumerable、List、数组
toString和遍历
toString和遍历
73 0
遍历 ArrayList和遍历 Map的几种方式
遍历 ArrayList和遍历 Map的几种方式
68 0
JSONObject遍历获取键值
JSONObject遍历获取键值
208 0
ArrayList 三种遍历方法(for循环+下标、foreach、使用迭代器)
ArrayList 三种遍历方法(for循环+下标、foreach、使用迭代器)
|
索引
3、遍历数组(while、for、for in、for of、map)
3、遍历数组(while、for、for in、for of、map)
111 0
foreach 遍历二维数组
foreach 遍历二维数组
166 0