使用Pure GWT序列化POJO

时间:2015-01-03 23:13:53

标签: java json gwt

我的代码有什么问题:

String serializeToJson(MyModel model) {
    // Retrieve the AutoBean controller
    AutoBean<MyModel> bean = AutoBeanUtils.getAutoBean(model);
    return AutoBeanCodex.encode(bean).getPayload();
}

即使模型对象不为null,也会设置值/字段。返回的Stringnull

1 个答案:

答案 0 :(得分:1)

Autobeans使用接口,声明getter和setter方法。虽然您可以创建该类的具体实例,但它没有AutoBean<MyModel>表示,因此您无法获得神奇的序列化,至少不容易。

这不是不是神奇的DWIM序列化工具 - 它是一种描述看起来像Java对象的数据的方法,但是由对您的用例最有意义的任何内容提供支持。 AutoBeans无法实现Java对象可能发生的事情(例如对象中的循环,多态等),它们根本不是为它而设计的,如果它们被设计为能够这样做。

检查上面代码中AutoBeanUtils.getAutoBean的结果 - 它可能会返回null,因为AutoBean实例中没有MyModel

请参阅GWT AutoBean with POJO class instead of interface以了解有关此问题的其他讨论,并http://www.gwtproject.org/doc/latest/DevGuideAutoBeans.html了解如何正确使用自动转播。