目前,我有一类设置为一个autobean进行处理:如何使用GWT Autobeans处理动态JSON数据?
public interface Asset extends Hit {
String getGuid();
String getHitType();
Map<String,Serializable> getMetadata();
}
我尝试使用对象,而不是Serializable接口
Map<String,Object> getMetadata()
但这似乎炸毁试图访问数据时(因为它不是'实现')。
元数据映射可能包含其他映射,字符串,整数等。如何从该元数据对象的内部映射中检索数据?
目前,如果我打电话给asset.getMetadata()。get(“title”);这将返回一个SerializableAutoBean,并且对该对象执行toString()或String.valueOf(obj)将返回内存对象信息,而不是实际的字符串值。
AutoBean对象可以是动态的吗?还是您需要专门定义每个字段?
好了之后,我发现我可以将我的元数据映射到字符串,可拆分。其中Splittable允许我检索驱动自动更新的数据,并且可以根据需要对其进行递归。虽然不是很干净,特别是当涉及到列表时。 – 2012-03-02 21:18:10
正如您的注释,“Splittable”适用于此,甚至可以允许序列化对象在另一个“AutoBeanFactory”中编码。 (更多关于此:http://stackoverflow.com/questions/9234601/parsing-json-objects-of-unknown-type-with-autobean-on-gwt)它确实增加了一个额外的解析行,您可以在其中指定要解码的对象的类型,但是在一个甚至可以是优点的循环中 - 你可以在同一个列表中有几种不同类型的对象,并且使用分割表的方法来请求一个给定的属性来获取类型的数据每。 – 2012-03-02 21:47:54