fastjson将bean转成字符串时key首字母大小写问题

最近使用fastJson,遇到了当bean转json时某一个属性名是大写转换为首字母小写问题;
其中有比较多的解决办法比如这篇博客里面所说的。
http://blog.csdn.net/itluochen/article/details/53131178 也是一种解决办法,不过太繁琐了。
本人太懒不想那么麻烦 ,所以想看看有没有其他更简单的办法。
去查了fastjson的文档 发现其提供了 一个过滤器 SerializeFilter 感觉这个过滤器应该可以实现大小写的功能
https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6%BB%A4%E5%B1%9E%E6%80%A7
在fastjson的wiki上也看到了他的使用方法,最后查询SerializeFilter 的实现类,发现有一个叫做PascalNameFilter的过滤器已经实现了该功能 。

package com.alibaba.fastjson.serializer;

public class PascalNameFilter implements NameFilter {

    public String process(Object source, String name, Object value) {
        if (name == null || name.length() == 0) {
            return name;
        }

        char[] chars = name.toCharArray();
        chars[0]= Character.toUpperCase(chars[0]);

        String pascalName = new String(chars);
        return pascalName;
    }
}

于是简单的通过一行代码就解决了问题。content 是你需要转换的对象

JSON.toJSONString(content,new PascalNameFilter());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章