Paul, If I go with T Broyer's suggestion of making User extend JavaScriptObject then would interop-utils be able to handle an array property User[] users within User for deserialization? I'm trying to work around the issue of having a list deserialized as its correct type. Ultimately I'd like to get my User[] back in browser JavaScript and be able to do var users = ...deserialized User[] users[0].getValue(); where getValue() is a @JsMethod
I'm realizing now that I can't do that unless @JsType(isNative = false because overlay methods can't be accessed from JavaScript. Doing that causes a casting issue when using gwt.interop.utils.client.JSON to parse my incoming JSON string. On Saturday, November 18, 2017 at 7:02:37 AM UTC-5, Paul Stockley wrote: > > gwt-interop-utils shows one way of doing it. This assumes you are OK using > intermediate collection types. > > https://github.com/GWTReact/gwt-interop-utils/blob/master/DOCUMENTATION.md > > > > On Saturday, November 18, 2017 at 3:52:09 AM UTC-5, Chris L wrote: >> >> I'm trying to create a shared model in my GWT 2.8.2 application that I >> can use both at the server and in GWT client code. >> >> My research/Google Fu tells me that this might be possible with JsInterop >> but since I'm new to JsInterop I'm just not sure. >> I've done some experiments but I've run into a couple of issues with the >> biggest being that I can't have my model accessor methods if I make the >> model native. The compiler tells me that they have to be native or >> abstract. >> >> What I'd like to do with my model is: >> @JsType >> public class User { >> private double id; >> private String code; >> private String name; >> >> @JsConstructor >> public User() { >> } >> >> @JsIgnore >> public User(double id, String code, String name) { >> this(); >> >> this.id = id; >> this.code = code; >> this.name = name; >> } >> >> ... >> @JsProperty >> public double getId() { >> return id; >> } >> >> @JsProperty >> public double setId(double id) { >> this.id = id; >> } >> ... >> } >> >> Then in my GWT application I'd like to do this: >> >> public class JsTypes { >> >> public static native <T> T getJsTypeObject(JavaScriptObject >> result)/*-{ >> return result; >> }-*/; >> } >> >> //called after REST response from server >> private void onCallback(String json) { >> Console.log("JSON:" + json); >> JavaScriptObject result = JsonUtils.safeEval(json); >> User user = JsTypes.getJsTypeObject(result); >> ... >> //do something with user >> } >> >> Any ideas or suggestions would be greatly appreciated. >> > -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
