JSONArray遍历

时间:2025-01-15 07:34:02

stream

// 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);