无法将JsonNull转换为JsonObject

gos*_*sua 5 java json gson

我想将一个primitve属性从一个JsonObject复制到另一个JsonObject

JsonObject propertyToBeCopied = source.getAsJsonObject(propertyName);

但我总是遇到这个例外:

com.google.gson.JsonNull cannot be cast to com.google.gson.JsonObject

根据文档,应该可以进行演员表,或者我错了吗?

Pao*_*Pao 15

根据文档JsonNull是一个JsonElement但不是一个JsonObject(它本身就是一个JsonElement).运用

JsonElement element = source.get(propertyName);
if (!(element instanceof JsonNull)) {
    JsonObject propertyToBeCopied = (JsonObject) element;
}
Run Code Online (Sandbox Code Playgroud)

如果它不属于类型JsonElement,则会返回一个被转换JsonObject的内容JsonNull.