我正在尝试使用流将JsonObject值放入自定义ArrayList
List<MyClass> custom = new ArrayList<>();
我将流映射到JsonObject
.map(JsonElement::getAsJsonObject)
.forEach(jsonObject -> custom.add(new MyClass(
jsonObject.get("stuff1").getAsString(),
jsonObject.get("stuff2").getAsString(),
jsonObject.get("stuff3").getAsLong(),
jsonObject.get("stuff4").getAsInt())));
并尝试添加它,一切正常。
,但是jsonObject中可能缺少值stuff4
(服务器未发送stuff4
JsonObject属性),这就是我得到空指针异常的地方。有谁知道我如何使用gson lib处理这个问题?用stream#collect
代替stream#forEach
的答案也很好
答案 0 :(得分:0)
__init__
或
.map(JsonElement::getAsJsonObject)
.forEach(jsonObject -> custom.add(new MyClass(
jsonObject.get("stuff1").getAsString(),
jsonObject.get("stuff2").getAsString(),
jsonObject.get("stuff3").getAsLong(),
jsonObject.get("stuff4")==null? null:jsonObject.get("stuff4").getAsInt())));
答案 1 :(得分:0)
如果导入了Gson库,则可以执行以下操作:
Gson gson = new Gson();
.map(JsonElement::getAsJsonObject)
.forEach(jsonObject -> custom.add(gson.fromJson(jsonObject.toString(),MyClass.class)))
);