最近使用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());