3

I have this GWT method:

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

This is the HTML/JS part:

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

The object product looks like this in Firebug:

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

After then,

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

However, how can I parse the resulting value to get the field values like the product id, etc.?

1
  • Please add the answer here,So that will helpful in future. Commented Mar 19, 2013 at 8:16

1 Answer 1

6

If I have correctly understood the question, I'd use an overlay type, something like:

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...
}

Then modify you JSNI to return the actual JSO type

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

You get the idea, see also https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsOverlay?hl=it#example-json

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.