我试图使用流将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())));再加一句,一切都很好。
但是stuff4值可能会从jsonObject中丢失(服务器没有发送stuff4 JsonObject属性),而这正是我获得空指针异常的地方。有人知道我如何使用gson库来处理这个问题吗?用stream#collect而不是stream#forEach来回答也很好
发布于 2018-10-29 07:48:03
如果导入了Gson库,则可以执行以下操作:
Gson gson = new Gson();
.map(JsonElement::getAsJsonObject)
.forEach(jsonObject -> custom.add(gson.fromJson(jsonObject.toString(),MyClass.class)))
);发布于 2018-10-29 07:27:18
.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())));或
.map(JsonElement::getAsJsonObject)
.forEach(jsonObject -> custom.add(new MyClass(
...
jsonObject.has("stuff4")? jsonObject.get("stuff4").getAsInt():null)));https://stackoverflow.com/questions/53040585
复制相似问题