我正在使用Gson 1.6 和 Spring Framework WebSphere 6.1 上的 Java Web 应用程序 3.0 。我有一些 Spring bean,其实际实例是 CGLIB代理人。当我尝试通过 Gson 序列化这些 bean 时,该类的非原始属性不会被序列化。相反,我得到的是这样的东西:
{
"CGLIB$BOUND":true,
"CGLIB$CONSTRUCTED":true,
"booleanProperty":true,
"anotherBooleanProperty":true,
}
我期待的东西更像
{
"stringProperty":"stringValue"
"integerObjectProperty":17,
"booleanProperty":true,
"anotherBooleanProperty":true,
}
当我序列化非代理 POJO 时,输出完全符合我的预期。如何让 Gson 生成我期望的输出?
最佳答案
我想说你的问题是不良做法的结果。
Spring Bean 通常由行为而不是状态来定义。并且您应该只序列化具有状态而不是行为的类。
重构您的代码,将状态从 Bean 传输到值对象,然后序列化它们。
关于json - Gson 序列化 Spring beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980379/