2013-03-19 47 views
3

我有這樣的GWT方法:如何通過javascript對象到GWT方法和分析結果

public static native JavaScriptObject getJsValue() /*-{ 
    var res = $wnd.product; 
    return res; 
}-*/; 

這是HTML/JS部分:

<script type="text/javascript" language="javascript"> 
    var product = products({id:1}).first(); 
</script> 
<!-- GWT --> 
<script type="text/javascript" language="javascript" src="app/app.nocache.js"></script> 

對象product看起來像這樣在Firebug :

Object { id=1, categoryid=0, name="Sample Product", more...} 

此後,

Object obj = getJsValue(); // what cast? 

但是,如何解析結果值以獲取產品ID等字段值?

+0

請在此處添加答案,以便將來有所幫助。 – 2013-03-19 08:16:13

回答

6

如果我理解正確的問題,我會使用的覆蓋類型,是這樣的:

public class ProductJso extends JavaScriptObject { 
    protected ProductJso() {} 
    public final native int getId() /*-{ 
    return this.id; 
    }-*/; 
    public final native int getCategoryId() /*-{ 
    return this.categoryid; 
    }-*/; 
    public final native String getName() /*-{ 
    return this.name; 
    }-*/; 
    // And so on... 
} 

然後修改您JSNI返回實際JSO

public static native ProductJso getJsValue() /*-{ 
    return $wnd.product; 
}-*/; 

你得到的主意,另請參閱https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay?hl=it#example-json