GWT 2.1.1具有非常好的框架-RequestFactory,其中包含所有EntityProxy和其他内容。
我正在寻找一种方法来序列化实现EntityProxy的运行时实例,以进行调试和记录等。我不关心格式,只要它是人类可读的即可。
更具体地说,我希望有类似Apache Commons Lang提供的内容
ReflectionToStringBuilder
也许有某种方法可以使用GWT内部具有的JSON序列化机制?如果是的话,如何使其更具可读性?
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
String stringRep = ReflectionToStringBuilder.toString(this);
最佳答案
至少有两种解决方案:
第一:基于Thomas Broyer的想法
public static String toString(EntityProxy entityProxy)
{
DefaultProxyStore store = new DefaultProxyStore();
Swap.requestFactory.getSerializer(store).serialize(entityProxy);
return store.encode();
}
产生这样的东西:
{"V":"211","P":{"1@[email protected]":{"O":"PERSIST","R":"2","Y":1,"T":"biz.daich.swap.shared.dto.UserAccountProxy","P":{"id":null,"items":null,"channelId":null,"lastActive":1296194777916,"name":null,"emailAddress":"[email protected]","lastReported":1296194777916,"lastLoginOn":1296194777916}}}}
第二:基于AutoBean framework
public static String toJson(EntityProxy entityProxy)
{
return AutoBeanCodex.encode(AutoBeanUtils.getAutoBean(entityProxy)).getPayload();
}
哪个产生像
{"emailAddress":"[email protected]","lastActive":1296194777916,"lastLoginOn":1296194777916,"lastReported":1296194777916}
第二个正是我需要的-它在日志中更具可读性。