2013-07-18 83 views
2

我在嘗試從json文件 中讀取我的java類時出現問題; s向我顯示此錯誤: 注意:我安裝了json-simple並使用它succeufuly解析方法(FileReader)對於JSONParser類型是未定義的

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method parse(FileReader) is undefined for the type JSONParser

at com.cd.JSONParser.main(JSONParser.java:18)

這是我的代碼:

package com.cd; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Iterator; 
import org.json.simple.JSONArray; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.json.simple.parser.ParseException; 

public class JSONParser { 
    public static void main(String[] args) { 

      JSONParser parser = new JSONParser(); 

      try { 

       Object obj = parser.parse(new FileReader("g:\\testm1.json")); 

       JSONObject jsonObject = (JSONObject) obj; 

       String name = (String) jsonObject.get("name"); 
       System.out.println(name); 

       long age = (Long) jsonObject.get("age"); 
       System.out.println(age); 

       // loop array 
       JSONArray msg = (JSONArray) jsonObject.get("messages"); 
       Iterator<String> iterator = msg.iterator(); 
       while (iterator.hasNext()) { 
        System.out.println(iterator.next()); 
       } 

      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 

      } 

    } 

回答

2

你命名自己的類方式與JSON-簡單JSONParser類相同。因此,編譯器將JSONParser解析爲您自己的類(com.cd.JSONParser),而不是解析簡單的JSONParserorg.json.simple.parser.JSONParser)。

重新命名您的班級。或者每次您想參考此課程,請使用org.json.simple.parser.JSONParser而不是JSONParser

2

將您的班級重命名爲JSONParser以外的班級。此名稱與org.json.simple.parser.JSONParser碰撞,所以當你撥打:

JSONParser parser = new JSONParser(); 

你實際實例化你的com.cd.JSONParser代替org.json.simple.parser.JSONParser

一般規則,不要將您的類與您使用的某些庫類(尤其是JDK類)調用相同,除非您真的必須這樣做。在這種情況下,你可以隨時使用完全合格的名稱如:

org.json.simple.parser.JSONParser parser = 
    new org.json.simple.parser.JSONParser(); 
+0

非常感謝你 –

相關問題