2014-03-03 28 views
0

我有一個類,並試圖解析JSON字符串來實例化該類。下面是代碼和JSON文件:Gson成功解析變量,但不是從文件中解析

JSON:

{'walk': ['walk_1','walk_2'], 'jump': ['jump']} 

類別:

import java.util.ArrayList; 

public class AnimationSheet { 

    public ArrayList<String> walk, jump; 

} 

功能

Gson json = new Gson(); 
sheet = json.fromJson(jsonFile, AnimationSheet.class); 

但它給這個錯誤:

Exception in thread "LWJGL Application" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 

但它成功地解析,如果我從變量分析,如下所示:

Gson json = new Gson(); 
String txt = "{'walk': ['walk_1','walk_2'], 'jump': ['jump']}"; 
sheet = json.fromJson(txt, AnimationSheet.class); 

這背後的原因是什麼?我該如何解決它?

謝謝。

+1

'jsonFile'的值是什麼? – njzk2

+1

'jsonFile'的類型是什麼? – nikis

+0

你可以記錄jsonFile的值 – Devrim

回答

1

我的猜測是該文件不包含與您的txt字符串相同的文件。看看這個消息,它看起來可能是這個文件在開始時有一個流浪的String,而不是它所期望的對象。示例字符串中的對象是{,換句話說,就是散列,映射或字典。如果你的文件內容到命令行println,我預計它沒有完全相同的字符。

+0

謝謝!似乎在文件的開頭還有一些其他字符沒有顯示在編輯器上。 –