【问题标题】:How to check if a Json element isJsonPrimitive如何检查 Json 元素是否为 JsonPrimitive
【发布时间】:2019-08-16 22:53:11
【问题描述】:

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

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

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

在 Jackson 中,Json 节点类型是其中之一

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

【问题讨论】:

  • 也许this 有帮助
  • 您可以尝试JsonNode.isValueNode(),它将返回true,而不是ARRAY、OBJECT 和MISSING。

标签: java json jackson jackson-databind


【解决方案1】:

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

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

如果节点是:ARRAYOBJECTMISSING,则返回 false;对于其他类型 - true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 2012-08-28
    • 1970-01-01
    • 2011-09-26
    • 2011-09-25
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多