Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript覆盖反序列化列表列表的json表示?_Javascript_Json_List_Gwt_Deserialization - Fatal编程技术网

如何使用JavaScript覆盖反序列化列表列表的json表示?

如何使用JavaScript覆盖反序列化列表列表的json表示?,javascript,json,list,gwt,deserialization,Javascript,Json,List,Gwt,Deserialization,我有可扩展的服务器端java对象,它们实现了这些简化的接口: interface Vector { public double getX(); public double getY(); } interface Geometry { public List<Vector> getShell();//can get big public List<List<Vector>> getHoles(); } interface Feature {

我有可扩展的服务器端java对象,它们实现了这些简化的接口:

interface Vector {
  public double getX();
  public double getY();
}

interface Geometry {
  public List<Vector> getShell();//can get big
  public List<List<Vector>> getHoles();
}

interface Feature {
  public String getID();
  public List<Geometry> getGeometry();
}
接口向量{
公共双getX();
公共双关语();
}
界面几何{
public List getShell();//可以变大
公共列表getHoles();
}
接口特性{
公共字符串getID();
公共列表getGeometry();
}
我构建了一个功能列表,使用gson-lib将其转换为json。结果看起来是这样的,只是它要大得多

[{“i”:“304”,“g”:[{“s”:[{“x”:-3169996.4370428286,“y”:1.1231962684336938E7},{“x”:-3287403.7124886,“y”:1.119282695492E7},{“x”:-2935181.88615077,“y”:1.115369116737292E7}

我能够将json解析为一个JsArray,其中JsFeature是一个实现功能接口的javascriptobject


如何在不必逐个向量解析json向量的情况下获取其余数据。理想情况下,我希望有一种方法将列表转换为JsList,其中JsGeometry是一个实现几何体的JavascriptObject类,它将包括一个列表等等。

您可以实现一个委托的
列表
类将所有内容都添加到底层的
JsArray
,但这并不像听起来那么容易(以及为什么它不是内置的GWT)

我建议您使用:

接口工厂扩展了AutoBeanFactory{
自动bean功能();
}
Factory=GWT.create(Factory.class);
Feature Feature=AutoBeanCodex.decode(工厂,Feature.class,jsonString).as();
运行时开销很小,几乎与
列表
包装
JsArray
一样,但您不需要编写任何代码就能使其工作


还请注意,您甚至可以在服务器端使用AutoBean而不是GSON。

我是否可以通过
AutoBean
ing功能类来获取基础列表?当然!您不必对接口进行任何更改,只需使用AutoBeanFactory和AutoBeanCodex,就可以了。
interface Factory extends AutoBeanFactory {
   AutoBean<Feature> feature();
}

Factory factory = GWT.create(Factory.class);

Feature feature = AutoBeanCodex.decode(factory, Feature.class, jsonString).as();