“未找到类异常:gson.gson”,但在Eclipse上的本地项目的构建路径中有它

km0tfn4u  于 2022-11-06  发布在  Eclipse
关注(0)|答案(1)|浏览(338)

我正在尝试我的第一个Java项目,并希望使用Gson读入一个Json文件(我从电子表格中生成的),然后将其作为类对象添加。

import com.google.gson.Gson;

public class Init {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Gson gson = new Gson();

        FileReader fr = null;
        try {
            fr = new FileReader("Log_Model.json");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

         Object json = gson.fromJson(fr, Item[].class);
         //https://futurestud.io/tutorials/gson-mapping-of-arrays-and-lists-of-objects
         System.out.println(json);
        }

当我运行这个程序时,

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
    at relog.Init.main(Init.java:13)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 1 more

我正在使用Eclipse,它安装在Windows 7的User文件夹中,gson jar放在项目文件夹中,我已经将其添加到构建路径中。

4smxwvx5

4smxwvx51#

正在将GSON添加到项目:
在Eclipse菜单中打开Windows首选项,然后导航到Java构建路径用户库选项卡。单击新建并输入新的用户库名称:如“gson_lib”并单击“确定”。选择“gson_lib”后,按添加外部JAR并找到您下载的gson-2.8.6.jar。应用并关闭。
首先创建JSON Schema类,可以用JsonToSchema做类结构示例:

public class User {

    public String name, email;
    public int age;

    public User(String name, String email, int age){
        this.name = name;
        this.email = email;
        this.age = age;
    }

}

编码:

import com.google.gson.*;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;

public class Main {
private static final Type USER_TYPE = new TypeToken<List<User>>() {}.getType();
    public static void main(String[] args) {
    JsonReader reader = new JsonReader(new FileReader("user.json"));       
    // change the JSON string to Object
    Gson gson = new GsonBuilder().create();
    List<User> data = gson.fromJson(reader, USER_TYPE); // contains the whole user list
    data.toScreen(); // prints to screen some values
    }    
}

相关问题