2009-07-11 6 views
2

In den letzten paar Tagen habe ich versucht, GWT dazu zu bringen, entweder einen JSONValue oder eine XML-Zeichenfolge zu interpretieren, die vom Server zurückgegeben wird (mit PHP).Frustration beim Parsen von XML oder JSON mit GWT

Ich bin ziemlich frustriert, weil ich scheinbar nichts zur Arbeit bringen kann. Für das XML habe ich bestätigt, dass der von PHP an GWT übergebene String eine korrekte XML-Zeichenkette ist. Wenn ich jedoch versuche, das XML zu analysieren, erhalte ich eine Menge Nullfehler.

Mit dem JSON, erhalte ich die folgende von der 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}]} 

Ich habe keine Ahnung, warum die Werte NULL sind, aber das ist, wie die GWT für die JSON aussieht:

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); 

} 

Weiß jemand, was ich falsch mache mit dem JSON? Ich mache json_encode ($ array) im PHP, und ich habe keine Ahnung, wie man es in GWT bricht.

Leider gibt es nicht viele Beispiele online, entweder ...

Dank!

Antwort

1

Ihr erstes Problem scheint serverseitig (PHP) zu sein und hat nichts mit GWT zu tun. Gehen Sie einfach auf Ihre Seite (http://www.kbehr.com/calendar/view_duty.php) sollten einige Daten zurückgeben, nicht eine ganze Reihe von NULL (wahrscheinlich).

Was, wie die JSON-Parser in GWT verwenden, gehen here und beginnen bei "2. Manipulieren von JSON-Daten in der clientseitigen Code" Lesen