我有这个 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 等字段值?
最佳答案
如果我正确理解了这个问题,我会使用覆盖类型,例如:
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
关于java - 如何将 javascript 对象传递给 GWT 方法并解析结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15493476/