首页 > 解决方案 > 如何读取 json 文件并创建 java 类

问题描述

我的问题似乎是我可以将对象保存为 json,但我无法将 json 转换为 Java,我的代码在哪里:

   public class WebCrawlerDAOJSon implements WebCrawlerDAO{
   private static final String fileName = "web.json";
   private String jsonInString;

   public WebCrawlerDAOJSon() {
       jsonInString = "";
   }

   @Override
   public void save(WebCrawler webcrawler) {
       FileWriter writer = null;   
       try {
           Gson gson = new GsonBuilder().setPrettyPrinting().create();
           writer = new FileWriter(fileName);
           gson.toJson(webcrawler, writer);
           jsonInString = gson.toJson(webcrawler);
           System.out.println(jsonInString);
           writer.flush();
           writer.close();
       } catch (IOException ex) {
           Logger.getLogger(WebCrawlerDAOJSon.class.getName()).log(Level.SEVERE, null, ex);
       }
       }

   @Override
   public WebCrawler load() {
       try {
           Gson gson = new GsonBuilder().setPrettyPrinting().create();
           Reader br = new FileReader(fileName);
           WebCrawler web = gson.fromJson(br, WebCrawler.class);
           System.out.println(web.toString());
           return web;
       } catch (FileNotFoundException ex) {
           Logger.getLogger(WebCrawlerDAOJSon.class.getName()).log(Level.SEVERE, null, ex);
       }
       return new WebCrawler();
   }
   }

但是当我尝试保存它时,它给了我以下错误:

“预期为 BEGIN_OBJECT,但在第 4 行第 8 列路径 $.digraph.vertices 处为 STRING。” (WebCrawler web = gson.fromJson(br, WebCrawler.class))

如果我保存它并且我以相同的方式阅读它,为什么它不起作用?

标签: javajsongson

解决方案


推荐阅读