java - 如何在使用 Jackson 将对象序列化为 JSON 时避免 @type 中的类名

标签 java json jackson

我正在使用 Jackson 将 POJO 序列化为 JSON。但是,我得到的 JSON 是:

{
  "@type": "com.company.services.alert.dto.JungleEventDTO",
  "company": "xyz",
  "enabled": true,
  "support": false,
..
}

我不想向客户公开我的类(class)名称。

我该怎么做?

最佳答案

您可以使用@JsonTypeId 或@JsonTypeName 或@JsonTypeInfo 进行类型处理。

引用自https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations

@JsonTypeId: property annotation used to indicate that the property value should be used as the Type Id for object, instead of using class name or external type name.

另请参阅 How can I prevent Jackson from serializing a polymorphic type's annotation property?

关于java - 如何在使用 Jackson 将对象序列化为 JSON 时避免 @type 中的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395789/

相关文章:

java - hibernate spring简单单元测试读取数据。 findAll() 无法引用

java - Jackson 映射对象是 DAO 吗?

java - HTMLUnit 和 Java : NoSuchMethodException: createDefaultSSLContext()

java - 从 URL 到 JSON 再到字符串 (JAVA)

java - java 类中的依赖属性

c# - 从 SqlDataReader 读取 JSON 字符串的最有效和最快的方法

javascript - 使用 AngularJS 访问没有键值的 JSON 数据值

javascript - 在 JavaScript 中动态创建 JSON 数组键

java - 使用 Jackson 将 JSON 反序列化为异构元素列表

java - Jackson CSV 映射器不适用于自定义架构