【问题标题】:How to get object JSON with no get/set methods如何在没有 get/set 方法的情况下获取对象 JSON
【发布时间】:2019-04-19 19:50:23
【问题描述】:

大多数 json 序列化使用对象属性访问器(如 getter 和 setter 方法)工作。我正在尝试将没有 get/set 方法的第三方对象(并且我无法控制修改源)序列化为 json 并通过 REST 服务发送。

但最终生成的 json 并没有像我的对象中那样包含所有属性数据。由于没有访问器方法,这一点很明显。

在这种情况下,我还有其他方法可以准备 JSON 吗? 否则,有没有其他方法可以在不影响其属性值的情况下通过我的休息服务发送这个第 3 方对象? (我考虑过对象序列化并使用流发送,但这看起来很不合常规)。

【问题讨论】:

  • 将这些第三方对象转换为您控制的对象,并且易于序列化/反序列化(反之亦然)。或者为第三方类编写特定的 JSON 序列化器/反序列化器。
  • @JBNizet 如前所述,我无权访问此库,因此无法修改。由于对象的 set/get 方法,我无法准备这些值或将这些值复制到我自己的对象中。

标签: java json spring spring-boot


【解决方案1】:

也许大多数。另一方面,GSON 使用反射来直接设置字段。您实际上必须强制它使用反射(请参阅Gson avoid reflection)。

因此,一种解决方案是使用该库。准确地说:gson 使用反射来直接识别 bean 类中的 字段,而不依赖于 getter/setter。

【讨论】:

猜你喜欢
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多