大多数json序列化工作都使用对象属性访问器(如getter和setter方法)进行。我试图将没有get / set方法(并且我没有控制修改源代码)的第三方对象序列化为json并通过REST服务进行发送。
但是生成的最终json并不像我的对象中那样具有所有属性数据。这很明显,因为没有访问方法。
在这种情况下,还有其他方法可以准备JSON吗? 否则,是否还有其他方法可以按原样通过我的rest服务发送此第三方对象,而又不影响其属性值? (我认为这类似于对象序列化并使用流进行发送,但这看起来像是非常规的。)
答案 0 :(得分:1)
也许最多。另一方面,GSON使用反射直接设置字段。实际上,您必须强制它不使用反射(请参见Gson avoid reflection)。
因此一种解决方案是使用该库。准确地说:gson使用反射直接在bean类中标识 fields ,而无需依赖getter / setter方法。