Вы можете попробовать Типы наложения JavaScript , например, вот так:
public class OverlayExample implements EntryPoint {
public static final class MyJsMap extends JavaScriptObject {
protected MyJsMap() {}
public native Object get(Object key) /*-{
return this[key];
}-*/;
public native void put(Object key, Object val) /*-{
this[key] = val;
}-*/;
}
public void onModuleLoad() {
final String text = "[{ 1 : 'x', 2 : 'y' }]";
final MyJsMap map = asJsMap(text);
System.out.println(map.get("1"));
}
private static native MyJsMap asJsMap(final String str) /*-{
return eval(str)[0];
}-*/;
}
Хорошо, это не совсем java.util.Map
, но если вам это нужно, вы можете улучшить MyJsMap
для реализации интерфейса java.util.Map
.
Или - если вам нужен реальный java.util.HashMap
- вы можете перебрать все значения и скопировать их в HashMap
.В последнем случае, вероятно, проще использовать GSON , как рекомендует @The Elite Gentleman.