java - 无法找到明确的方法 : class com. fastxml.jackson.databind.node.ArrayNode.get(java.lang.Long)

标签 java json spring-mvc jackson

我有一个Spring MVC项目 Maven管理依赖关系。我需要读取 JSON 并将其内容显示到 View 中。

给定一个简单的 JSON 对象

{
    "items" : [{"model" : "m1"}, {"model" : "m2"}, {"model" : "m3"}]
}

我利用 Jackson Project 中的软件包读取并解析该文件,然后将值设置为 @Controller

JsonNode itemsNode = Node.path("items");
model.addAttribute("items", itemsNode);

在 JSP 上,我检索值

Item 0: ${items.get(0)}, Item 1: ${items.get(1)}, Item 2: ${items.get(2)}

我遇到的问题是,

当我使用时,一切都按预期工作

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
</dependency>

但是我遇到了错误,

HTTP 状态 500 - javax.el.MethodNotFoundException:无法找到明确的方法:类 com.fasterxml.jackson.databind.node.ArrayNode.get(java.lang.Long)

当我更换 <dependency> 时至

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.1</version>
</dependency>

没有源代码更改(import 语句除外)。 Spring 是 4.1.5.RELEASE

最佳答案

${items.get(0)}

JSP 将 0 视为 Long,但是 ArrayNode.get() takes an int 。查看the answer to this question for more details 。简而言之,您可以尝试以下操作:

${items.get( (0).intValue() )}

关于java - 无法找到明确的方法 : class com. fastxml.jackson.databind.node.ArrayNode.get(java.lang.Long),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839814/

相关文章:

java - 递归回溯返回更新值

javascript - 在网页上显示 Javascript 对象键/值对

Javascript(或 Angular )点变量到本地文件(json)

php - 通过 SQL 的多维 JSON 对象

javascript - spring mvc hibernate Restful(并发)问题

java - 使用 Oracle jdbc 的 Apache Drill 查询速度极慢

java - Android VPN认证和加密

java - 如何将多个 JSON 响应映射到单个 Java POJO?

java - 如何将模拟注入(inject)到 Spring 安全类中

jsp - 找不到标签库描述符错误: displaytag & spring