Разочарование в разборе XML или JSON с GWT - PullRequest
2 голосов
/ 11 июля 2009

Последние пару дней я пытался заставить GWT интерпретировать либо JSONValue, либо строку XML, которая передается обратно с сервера (с использованием PHP).

Я очень расстроен, потому что мне кажется, что я ничего не могу заставить работать. Для XML я подтвердил, что строка, переданная из PHP в GWT, является правильной строкой XML. Однако, когда я пытаюсь разобрать XML, я получаю кучу нулевых ошибок.

С помощью JSON я получаю следующее от PHP:

 Value: {"item":[{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null},{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null},{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null}]}

Понятия не имею, почему значения равны NULL, но вот как GWT выглядит для JSON:

 public void onChange(Widget sender) {
   lb.setText("Date selected: " + calendar.getDate());
   SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
   String current = df.format(calendar.getDate());

 RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode("http://www.kbehr.com/calendar/view_duty.php"));

try {
  builder.sendRequest(current, new RequestCallback(){
    public void onError(Request request, Throwable exception) {
      requestFailed(exception);
    }

    public void onResponseReceived(Request request, Response response) {

        String responseText = response.getText();
        try {
          JSONValue jsonValue = JSONParser.parse(responseText);
          processJSON(jsonValue);
        } catch (Exception e) {
          Window.alert("Error: " + e);
        }

    }});
}catch (RequestException ex) {
  requestFailed(ex);
}    

 }});
   fp.add(calendar);
   fp.add(lb);   
 }

 public void processJSON(JSONValue messageXml) {

 vp.clear();
 vp.add(new Label("Value: " + messageXml));
 RootPanel.get("slot2").add(vp);

 }

Кто-нибудь знает, что я делаю не так с JSON? Я делаю json_encode ($ array) в PHP, и я не знаю, как его разбить в GWT.

К сожалению, в Интернете тоже не так много примеров ...

Спасибо!

1 Ответ

1 голос
/ 16 июля 2009

Похоже, ваша первая проблема на стороне сервера (PHP) и не имеет ничего общего с GWT. Просто переход на вашу страницу (http://www.kbehr.com/calendar/view_duty.php) должен вернуть какие-то данные, а не целую кучу нулей (вероятно).

Что касается использования синтаксического анализатора JSON в GWT, перейдите здесь и начните чтение с "2. Управление данными JSON в коде на стороне клиента"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...