开发者社区> 问答> 正文

使用具有动态JSON密钥的JSONType将通用POJO转换为JSON

我有一个像这样的POJO:

class Wrapper,T> {
     private int count;
     private T data;
     // getters setters
}

使用Jackson将其转换为JSON时,json类似于:

{
count:1,
**data**:{}
}

我需要根据类名T或与类名相关的其他值来更改数据键,我该如何实现。请提出建议。谢谢。

问题来源:Stack Overflow

展开
收起
montos 2020-03-22 20:05:36 799 0
1 条回答
写回答
取消 提交回答
  • 使用自定义序列化程序,您可以执行任何所需的操作,因为您可以完全控制序列化过程。参见例如https://www.baeldung.com/jackson-custom-serialization。

    您的serialize方法如下所示:

    @Override
    public void serialize(
      Wrapper<?> value, JsonGenerator jgen, SerializerProvider provider) 
      throws IOException, JsonProcessingException {
    
        String derivedName = value.getClass().getSimpleName() + "Data"; // just an example
    
        jgen.writeStartObject();
        jgen.writeNumberField("count", value.getCount());
        jgen.writeObjectField(derivedName, value.getData());
        jgen.writeEndObject();
    }
    

    回答来源:Stack Overflow

    2020-03-22 20:06:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载