Json GWT Autobeans,将根级别解析为映射或列表

Json GWT Autobeans,将根级别解析为映射或列表,json,gwt,autobean,Json,Gwt,Autobean,汽车人非常强大。然而,就我的一生而言,我不知道如何处理根级别的JSON映射或列表 大多数文档都表明您有一个定义的顶级对象,该对象可以包含各种子对象(包括列表和贴图),但没有关于自动显示贴图或列表的文档 public interface Types { List<FieldType> getTypes(); } public interface TypesAutoBeanFactory extends AutoBeanFactory { AutoBean<Typ

汽车人非常强大。然而,就我的一生而言,我不知道如何处理根级别的JSON映射或列表

大多数文档都表明您有一个定义的顶级对象,该对象可以包含各种子对象(包括列表和贴图),但没有关于自动显示贴图或列表的文档

public interface Types {
    List<FieldType> getTypes();
}

public interface TypesAutoBeanFactory extends AutoBeanFactory {
    AutoBean<Types> jsonItems();
}
但是,我发现这很难看,REST服务应该正确返回:

[{...},{...}]
但是我找不到一个简单的方法来处理Autobean框架。根级别映射也是如此

为什么这不起作用?是否有替代方案:

public interface TypesAutoBeanFactory extends AutoBeanFactory {
    AutoBean<List<FieldType>> jsonItems();
}
公共接口类型SautoBeanFactory扩展了AutoBeanFactory{
AutoBean jsonItems();
}

AutoBean的工作原理是扫描类中的
get
set
方法(可能
也是
方法)<代码>列表
没有这些方法


您可以编写一个补丁,将内部
列表
解析方法直接挂接到
AutoBeanCodex
的外部
解码
方法-您需要的大部分代码都在那里。您可以添加
解码列表(可拆分输入)
,而不是
解码(类类型,可拆分输入)
。结果可能是一个实际的列表,而不是一个自动bean。

我可以看到的另一个简单方法是不完全自动bean解决方案

很明显,若字符串以
[{
开头,那个么它的数组就不是了,所以我们可以使用

Object[] array = jsonString.replaceAll("[\[\]]","").split(",");

然后使用autobean处理数组元素。

我使用您描述的方法来解码包含单个键下列表的JSON有效负载


还解释了将您提到的方法与unkeyed JSON列表有效负载相结合的另一种方法。

我明白您的意思,尽管这两种解决方案都不是非常干净的解决方案。第二种解决方案可能是两者中更好的一种。相反,我可能可以对splittable list和ultimate中的每个对象进行解码我只需要返回列表。我还需要地图,但这可能更棘手…还有更多的想法,但感谢您提供更好的方向。
Object[] array = jsonString.replaceAll("[\[\]]","").split(",");