Java 使用Jackson处理首字母大写

Java 使用Jackson处理首字母大写

今天写项目呢,遇到api需要的对象属性首字母都是大写的
使用Jackson进行json序列化之后,首字母都变成了小写的
传送参数到api接口全都报错
后来查证,可以继承PropertyNamingStrategy来实现

留代码备用

    public static String toJson(Object obj) {
        String json = null;
        ObjectMapper mapper = new ObjectMapper();
        mapper.setPropertyNamingStrategy(new PropertyNamingStrategy() {
            private static final long serialVersionUID = 1L;
            // 反序列化时调用
            @Override
            public String nameForSetterMethod(MapperConfig<?> config, 
                            AnnotatedMethod method, String defaultName) {
                return method.getName().substring(3);
            }
            // 序列化时调用
            @Override
            public String nameForGetterMethod(MapperConfig<?> config,
                           AnnotatedMethod method, String defaultName) {
                return method.getName().substring(3);
            }
        });
        try {
            json = mapper.writeValueAsString(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return json;
    }

另外注解也行

@JsonProperty(value = "Name")  
private String name;