私はJava 8のラムダやものに非常に新しいです...私は、JsonArrayをとり、そのJsonObjectsを調べ、特定のフィールドの値のリストを作成するラムダ関数を書いてみたいと思います。Java 8:JsonArrayで動作するようにラムダストリームを書き込む方法は?
たとえば、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);
}
}
はしかし、私はエラーを取得する:
Exception in thread "main" java.lang.NullPointerException
は、あなたはそれを解決する方法を知っていますか?
'(入れ)は'あなたのケースでは 'null'なのでを意味し、その名によって*以前の*値を返します。 'put()'は連鎖法ではありません(https://en.wikipedia.org/wiki/Method_chaining)。 – Andreas