我无法让com.googlecode.json-simple和Java-8流一起工作。
以下代码不起作用:
JSONArray jsonArray = new JSONArray();
List<String> a = jsonArray.stream()
.map(o -> ((Map)o).get("s"))
.map(Object::toString)
.collect(Collectors.toList());
它说:
java: incompatible types: java.lang.Object cannot be converted to java.util.List<java.lang.String>
但是它应该工作,因为我在收集之前将流对象显式地转换为String
。
答案 0 :(得分:0)
由于JSONArray
扩展了ArrayList
但未将类型绑定到该类型,因此一种可能的方法是将索引上的列表迭代为:
JSONArray jsonArray = new JSONArray();
List<String> list = IntStream.range(0, jsonArray.size())
.mapToObj(i -> ((Map) jsonArray.get(i)).get("s"))
.map(Object::toString)
.collect(Collectors.toCollection(ArrayList::new));