我有Json,看起来像这样:
{
"workshop_name" : "ABC"
"user_name" : "DEF"
}
在我的应用程序中不是强制性的,因此它可以以最低版本提供:workshop_name
{
"user_name" : "DEF"
}
现在我正在考虑使用Java8 Optional从JSON获取。我正在使用 org.json 库和 .我可以很容易地检查可选,如下所示:workshop_nameJSONObject
public static EnrichContext createEnricher(JSONObject json) {
EnrichContext enrichContext = new EnrichContext();
enrichContext.setWorkshopName(Optional.ofNullable(json.getString("workshop_name")).orElse("DEFAULT"));
enrichContext.setUserName(json.getString("user_name"));
}
我被迫切换到GSON,它看起来有点不同。
json.get("workshop_name").getAsString();
这意味着在调用JsonObject(来自GSON)后,我在中间有一个新对象。get
我试图使用嵌套的可选检查,但它看起来太复杂了。
我想到的是:
enrichContext.setWorkshopName((Optional.ofNullable(json.get("workshop_name")).orElse(new JsonPrimitive("DEFAULT"))).getAsString());
我不喜欢在每次阅读时都创造新的想法。有没有更理想的方法来解决这个问题?JsonPrimitive
慕少森
相关分类