2012-02-29 40 views
2

使用google's json parser,我測試,看文件的內容,如果它可以被解析:使用GSON解析JSON文件,一些奇怪的是怎麼回事

... 
FileReader fullPathToAndNameOfFile = new FileReader(file); 
isJson(fullPathToAndNameOfFile); 
... 

private static boolean isJson(FileReader f) { 

    try { 
     parser.parse(f); 
    } catch (Exception e) { 
     return false; 
    } 

    return true; 
} 

的問題..以下格式驗證沒有錯誤:

a:12 
b:27 
c:Mike 

其中,當然不是有效的JSON格式。

這是爲什麼?

回答

1

我不能用下面的代碼重現這個標記。

private static boolean isJson(FileReader f) { 
try{ 
    JsonElement json = new JsonParser().parse(f); 
    } 
catch (Exception e) { 
    return false; 
    } 
return true; 
} 

Inside main

parser p = new parser(); 
String file = "C:\\Users\\RanRag\\test.txt"; 
FileReader fullPathToAndNameOfFile = new FileReader(file); 

if(p.isJson(fullPathToAndNameOfFile)) 
    System.out.println("valid"); 
else 
    System.out.println("invalid"); 

輸出爲您指定的文件內容= invalid

如果我將文件內容更改爲valid json。對於如:

{ "name": "Simon" } 

輸出= valid

+0

很奇怪..一些奇怪的發生的事情與我的代碼。我將繼續尋找。感謝您的時間 – JAM 2012-02-29 21:05:43

+0

@JAM:我試圖讓我的代碼完全像您的代碼一樣,仍然無法重現問題。 – RanRag 2012-02-29 21:08:38

+0

確認,我得到「MalformedJsonException:第1行第2列預期的EOF」 – 2012-03-01 05:43:15