【发布时间】:2017-06-16 18:04:13
【问题描述】:
我对 Java 8 lambda 和其他东西非常陌生...我想编写一个 lambda 函数,它接受 JSONArray,遍历其 JSONObjects 并创建某个字段的值列表。
例如,一个函数接受JSONArray: [{name: "John"}, {name: "David"}] 并返回["John", "David"] 的列表。
我写了以下代码:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class Main {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.add(new JSONObject().put("name", "John"));
jsonArray.add(new JSONObject().put("name", "David"));
List list = (List) jsonArray.stream().map(json -> json.toString()).collect(Collectors.toList());
System.out.println(list);
}
}
但是,我收到一个错误:
线程“主”java.lang.NullPointerException 中的异常
你知道怎么解决吗?
【问题讨论】:
-
put()按该名称返回以前的 value ,在您的情况下意味着null。put()不是 chaining method。
标签: java lambda java-8 java-stream