2012-07-11 32 views
-2

如何在此课程中添加Animal.class。它在eclipse上给出了编译时错误。如何在java程序中添加.class?

上点击

mapper.readValue(jsonInput, Animal.class); 

日食要求配置构建路径。如何在test2软件包中拥有所有类。

import org.codehaus.jackson.map.ObjectMapper; 
import test2.*; 
    public class Foo 
    { 
     static String jsonInput = 
      "{\"type\":\"dog\",\"name\":\"Spike\"}"; 

     public static void main(String[] args) throws Exception 
     { 
     ObjectMapper mapper = new ObjectMapper(); 
     Animal animal = mapper.readValue(jsonInput, Animal.class); 
     System.out.println(mapper.writeValueAsString(animal)); 
     } 
    } 


class Animal 
{ 
    public String type; 
    public String name; 
} 
+2

什么是错误?如果我拿你的代码并删除'ObjectMapper'引用,并且只有'Animal animal = new Animal()',那么它就可以工作。您的问题似乎与'Animal'无关,但也许与'ObjectMapper'有关...... – 2012-07-11 05:09:29

+0

不确定在使用前是否导入了org.codehaus.jackson.map.ObjectMapper。 – nhahtdh 2012-07-11 05:13:59

+0

@nhahtdh我已经导入。 – 2012-07-11 10:04:59

回答

-4

为什么你不试试importing'动物'类。

0

首先,确保您已正确导入杰克逊的映射器。 (new ObjectMapper()的成功编译)

尝试将Animal定义到单独的.java文件中,然后映射器应该了解您想要执行的操作。

希望这会有帮助

+0

它一切运作良好,但如何在java中使用.class – 2012-07-11 05:47:39

+0

'Animal'不是**定义为子类或内部类。它只是一个与'Foo'相同的文件中定义的非公共类。它将被编译成Animal.class。 – 2012-07-11 06:21:57

+0

一个好的做法是使用Animal的一个实例作为模型,而不是直接尝试访问.class。我在杰克逊的文档中看到,你也可以使用一个实例,它应该工作得更好,或者至少看起来更好:) – 2012-07-11 06:25:29

0

您正在使用ObjectMapper,它不在jdk中。 为了使用这种添加扶养罐子, 你的情况**依赖meight缺少**

如果使用maven项目添加下列从 jackson-mapper-asl Link在pom.xml中进入

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

或下载JAR和Jackson0.7 jar Link

相关问题