如何检查 Json 元素是否为 Json 原始元素

How to check if a Json element isJsonPrimitive

我正在将一些代码从 Gson 更改为 Jackson,我必须在其中检查当前元素的类型是否为原语。

我可以用 Gson 做这样的事情:

JsonElement element = entry.getValue();
if (element.isJsonPrimitive()) {
    ...
}

在 Jackson 中,Json 节点类型是

之一

JsonNodeType: { ARRAY, BINARY, BOOLEAN, MISSING, NULL, NUMBER, OBJECT, POJO, STRING }

JacksonJsonNode class 有 isValueNode 方法应该做同样的事情:

@Override
public final boolean isValueNode()
{
    switch (getNodeType()) {
        case ARRAY: case OBJECT: case MISSING:
            return false;
        default:
            return true;
    }
}

如果节点是:ARRAYOBJECTMISSING它returnsfalse;对于其他类型 - true