Hi, I have an object that looks like
Code:
{
total: 50,
rows: [
{t1: 't1', t2: 't2'},
{t1: 't3', t2: 't4'}
]
}
Now I want to use it
Code:
JsObject o = new JsObject(source);
int total = o.getInt("total");
List rows = o.get ... // Here is somethign that I ask
I have ended with the following:
Code:
public class JsObjectEx extends JsObject {
public JsObjectEx() {
super();
}
public JsObjectEx(String data) {
super(data);
}
private JsObjectEx(JavaScriptObject jsObject) {
if (jsObject != null){
this.jsObject = jsObject;
} else {
this.jsObject = JsUtil.eval("[{}]");
}
}
public List<JsObjectEx> getList(String key){
final JsArray<JavaScriptObject> nativeList = getNativeList(key);
final List<JsObjectEx> list = new ArrayList<JsObjectEx>(nativeList.length());
for(int i = 0; i < nativeList.length(); i++){
list.add(new JsObjectEx(nativeList.get(i)));
}
return list;
}
private native JsArray<JavaScriptObject> getNativeList(String name) /*-{
var js = this.@com.extjs.gxt.ui.client.js.JsObject::jsObject;
return js[name];
}-*/;
}
But I am not sure that I am not inventing wheels here...
Please let me know your thoughts...