杰克逊为Eclipse中的初学者

时间:2014-02-07 17:04:18

标签: java json eclipse jackson

我要说的是,我还在学习Java和Eclipse的微妙之处,我来找你,因为我不确定如何正确地将我的问题发表到谷歌或StackOverflow的搜索引擎。道歉,如果它无限琐碎。

我试图理解将JSON格式字符串转换为Java中的对象的过程。我在网上找到了以下示例:

import java.io.IOException;

import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;public class JsonToJavaConverter {

private static Logger logger = Logger.getLogger(JsonToJavaConverter.class);

public static void main(String args[]) throws JsonParseException,
        JsonMappingException, IOException {

    JsonToJavaConverter converter = new JsonToJavaConverter();

    String json = "{\n" + "    \"name\": \"Garima\",\n"
            + "    \"surname\": \"Joshi\",\n"
            + "    \"phone\": 9832734651}";

    // converting JSON String to Java object
    converter.fromJson(json);
}

public Object fromJson(String json) throws JsonParseException,
        JsonMappingException, IOException {
    User garima = new ObjectMapper().readValue(json, User.class);
    logger.info("Java Object created from JSON String ");
    logger.info("JSON String : " + json);
    logger.info("Java Object : " + garima);

    return garima;
}

public static class User {
    private String name;
    private String surname;
    private long phone;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public long getPhone() {
        return phone;
    }

    public void setPhone(long phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "User [name=" + name + ", surname=" + surname + ", phone="
                + phone + "]";
    }
}}

现在,这是愚蠢的部分(请不要串起来询问):

import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

所有下划线都是红色,只有日食提示,是“导入org.apache.log4j无法解析”。

作为Eclipse和Java的新手,这让我感到非常沮丧。

有谁能告诉我解决这个基本问题需要做些什么?

深深感激。

3 个答案:

答案 0 :(得分:7)

您需要将库(jar文件)添加到Eclipse中项目的构建路径中。

您可以在Maven Central找到这些库:

Log4j

Jackson

答案 1 :(得分:2)

您需要将相关的Jar文件添加到项目类路径

http://javahowto.blogspot.co.uk/2006/06/set-classpath-in-eclipse-and-netbeans.html

答案 2 :(得分:1)

您需要将log4j jar添加到类路径中。假设您没有使用maven或gradle,可以从Apache's site下载。然后将它放在一个合适的共享位置并将其添加到项目的类路径中。我认为这是项目属性对话框中的第3或第4项,即iirc。