无法找到明确的方法:class com.fasterxml.jackson.databind.node.ArrayNode.get(java.lang.Long)
Unable to find unambiguous method: class com.fasterxml.jackson.databind.node.ArrayNode.get(java.lang.Long)
我有一个 Spring MVC
项目,其中 Maven
管理依赖项。我需要阅读 JSON 并将其内容显示到视图。
给定一个简单的 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:无法找到明确的方法:class 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. Check out the answer to this question for more details。简而言之,你可以试试这个:
${items.get( (0).intValue() )}
我有一个 Spring MVC
项目,其中 Maven
管理依赖项。我需要阅读 JSON 并将其内容显示到视图。
给定一个简单的 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:无法找到明确的方法:class 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. Check out the answer to this question for more details。简而言之,你可以试试这个:
${items.get( (0).intValue() )}