2015-06-25 3 views
1

У меня есть статический JSON-файл, и я хочу получить к нему доступ в своем коде GWT. Файл custom-report.json находится в адресе пакет проекта. Я добавляю его в ClientBundle и пытается получить доступ к нему, но я получаю сообщение об ошибкеКак использовать JSON-файл с помощью clientbundle в gwt

public interface AppBundle extends ClientBundle { 

    @Source("custom-report.json") 
    public TextResource jsonData(); 
    public static final AppBundle INSTANCE = GWT.create(AppBundle.class); 

} 

Чтобы использовать это в моем коде, это то, что я делаю:

AppBundle.INSTANCE.mystyle().ensureInjected(); 

JSONObject obj = (JSONObject) parser.parse(new FileReader(AppBundle.INSTANCE.jsonData().getText())); 

Это дает мне ошибку компиляции

[ERROR] Line 29: No source code is available for type org.json.simple.parser.JSONParser; did you forget to inherit a required module? 

Я не уверен, что это правильный способ использования JSON-файла в GWT.

ответ

0

Вам необходимо использовать com.google.gwt.json.client.JSONParser, который предоставляется GWT вместо org.json.simple.parser.JSONParser.

JSONValue value = JSONParser.parse(json); 
JSONObject productsObj = value.isObject(); 
JSONArray productsArray = productsObj.get("products").isArray(); 
+0

Проблема заключается в доступе к файлу JSON. Я не уверен, что это правильный способ доступа к файлу. Потому что ошибка связана с тем, что мой код не может прочитать файл. Он дает ошибку в следующей строке: JSONObject obj = (JSONObject) parser.parse (новый FileReader (AppBundle.INSTANCE.jsonData(). GetText())); – Prativa

+0

вы не можете использовать 'FileReader' на стороне клиента. Вы должны использовать 'ClientBundle' и пакет' gwt.json' –

+0

он работает! спасибо за помощь – Prativa

Смежные вопросы