最近使用fastJson,遇到了当bean转json时某一个属性名是大写转换为首字母小写问题;
其中有比较多的解决办法比如这篇博客里面所说的。
http://blog.youkuaiyun.com/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());
本文介绍了在使用fastjson时遇到bean转json过程中,属性名首字母自动小写的问题。作者探讨了多种解决办法,包括博客中提到的繁琐方法,并最终在fastjson官方文档中找到了SimplePropertyPreFilter和PascalNameFilter。通过应用PascalNameFilter,作者以简洁的方式解决了这个问题。
5万+

被折叠的 条评论
为什么被折叠?



