Kotlin数据类getMeta方法序列化时被自动调用的原因咨询
问题原因解析
这是因为你使用的JSON序列化库(比如Jackson,Spring Boot默认采用的序列化工具)遵循JavaBean属性命名规范,具体规则如下:
- 方法名以
get开头、且无参数的方法,会被识别为对应属性的getter方法 - 序列化过程中会自动调用这类方法,将返回值序列化为对应的字段:方法名去掉
get前缀,首字母转为小写(比如getMeta()对应生成meta字段)
而toJson()方法不符合这个规则——它不是以get开头,所以序列化库不会将其当作属性的getter方法,自然不会自动调用它。
你用@JsonIgnore注解标记getMeta()后,序列化库会忽略这个方法,也就不会生成meta字段,这确实是解决该问题的合理方案。
内容的提问来源于stack exchange,提问作者Chris Schmitz
相关产品推荐
相关产品推荐

