У меня есть проект Spring MVC
с Maven
управляющими зависимостями. Мне нужно прочитать JSON и отобразить его содержимое в представлении.Невозможно найти однозначный метод: class com.fasterxml.jackson.databind.node.ArrayNode.get (java.lang.Long)
Учитывая простой объект JSON
{
"items" : [{"model" : "m1"}, {"model" : "m2"}, {"model" : "m3"}]
}
I левереджа пакеты из 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 Status 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
). Весна 4.1.5.RELEASE
Да, я это заметил. Так что попробовал «Integer.parseInt (« 0 »)» и «new Integer (0)» без везения. И ваш подход работает, спасибо вам большое. Но я также задаюсь вопросом, почему 0 обрабатывается по-разному на другой версии Джексона. –
Да, мне это было интересно. Я взглянул на Javadocs, и обе версии получили (int). –
Я предполагал, что это должно быть выполнение JEE-реализации для интерпретации JSP, и обнаружил, что Tomcat 8.0.9 дал мне еще одну ошибку 'Не удалось найти однозначный метод: class com.fasterxml.jackson.databind.node.ArrayNode.get (java.lang .Integer) '. Но более поздняя версия Tomcat отлично работает с вашим подходом (проверено на 8.0.12 и 8.0.20). –