如何强制Jackson反序列化字段值为小写 [英] How to force Jackson deserialize field values to lower case

查看:109
本文介绍了如何强制Jackson反序列化字段值为小写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Spring应用程序,它公开了REST端点,让我们将其命名为"doAction".作为请求,它消耗对象:

I have spring application which expose REST endpoint, lets name it "doAction". As the request it consumes object:

class Person{
private String name;
private String email;
}

某些客户端可以通过传递数据的不同写法来调用此端点,例如:

Some clients can call this endpoint by passing data with different practice of writing words, like:

Peter_1
name = Peter 
email = peter@gmail.com  (lower case)

Mark_2
name = mark
email = MARK@gmail.com (upper case)

Julia_3
name = julia
email = JuliaToward@gmail.com (camel case)

是否有某种方法可以将所有收入数据解析为小写(假设所有字段均为字符串)?

因此,我希望拥有:

Peter_1
name = peter 
email = peter@gmail.com

Mark_2
name = mark
email = mark@gmail.com

Julia_3
name = julia
email = juliatoward@gmail.com

杰克逊的解决方案受到赞赏.

Solution for Jackson is appreciated.

推荐答案

简短答案在二传手中呼叫tolower

Short answer Call toLower in the setter

这里是一个例子:

class Animal
{
    private String name;

    public void setName(final String newValue)
    {
        StringUtils.trimToNull(StringUtils.lowerCase(newValue));
    }
}

我还建议 trimToNUll trimToEmpty .

这篇关于如何强制Jackson反序列化字段值为小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆