1.查找实体类型对应的Srializer,如果尚未创建则先创建一个再返回
Serializer创建过程:
Serializer主要为一个Property定义列表,其中描述了Propery序列化定义,Property定义列表生成过程为:
1)扫描所有的属性,添加到Property列表中;
2)扫描所有的get方法,根据属性名在property列表中寻找对应的Property定义,如果有对应属性,则将get方法设置为该property的get方法,没有对应属性则根据get方法创建一个property定义;
3)遍历property列表,将标记为ignore的属性从property定义中删除;
4)遍历property列表,将标记为ignore的方法从property定义中删除;
5)遍历property列表,将rename后的属性名添加到property列表中;
2.用创建的Serializer生成对应的json串到指定的writer中
如果实体中指定了策略为@JsonInclude(JsonInclude.Include.NON_DEFAULT),则属性值为默认值的属性将会被忽略,其中属性的默认值获取方式为,调用实体的无参构造函数创建一个实例,调用属性对应的get方法,将其返回值作为属性的默认值,如
以上写法,aliasName的的默认值为“aaa”,当aliasName的值为“aaa”时,生成的json里不会包含aliasName属性