这是如何使用 GWT 将任何对象(反)序列化为 JSON 的方法。
1) 使用受保护的构造函数定义扩展 JavaScriptObject 的类
public class PlaceData extends JavaScriptObject {
public PlaceData () {
}
}
2) 为字段添加原生 getter 和 setter
public final native String getId() /*-{
return this.id;
}-*/;
public final native String getToken() /*-{
return this.token;
}-*/;
3)定义某处映射方法,如那些
public static getPlace(PlaceData placeData) {
Place place = new Place();
place.setToken(placeData.getToken());
place.setId(placeData.getId());
return place; }
public static getPlaceData(Place place) {
PlaceData placeData = new PlaceData();
placeData.setToken(place.getToken());
placeData.setId(place.getId());
return placeData; }
4) 并将字符串转换为 JavaScriptObject 使用本机 eval() 函数。
public static native JsArray<PlaceData> jobs(String jsonArray) /*-{
return eval(json);
}-*/;
public static native PlaceData objects(String jsonPlace) /*-{
return eval(json);
}-*/;