高效的JSON转换工具
    ?
?
?????? 在网上搜索了一番发现用json-lib进行json格式转换的还真不少,但是经过测试性能不太令人满意,同类工具中还有个后起
之秀那就是jackson,单从性能上说要比json-lib好很多,于是在项目中就决定用jackson了。
???? 但是关于jackson的资料在网上相比不是很多,于是到了官方网站看了看,把源码下载下来。帮助文档做的不太好,也没有
个现成的例子供参考。不过还好,最后在官方网(http://jackson.codehaus.org/)站的某个角落里找到了一些例子,?我在原来例子的基础上稍加改动封装了一个工具,供网友们参考,有不当之处还望拍砖指正。
????? 为性能考虑尽量少的向客户端发送数据,所以在Bean到JSON转换的时候把不需要的字段过滤掉,要完成这个功能我们必须自定义一个实现StdSerializerProvider接口的序列化器BzStdSerializerProvider,然后把这个序列化器赋给ObjectMapper即可,下面就把整个具体实现贴出来:
view plaincopy to clipboardprint?
- 
package?com.bzlccn.oa.common.json.jackson;??
 
- 
import?java.io.IOException;??
 
- 
import?java.util.HashMap;??
 
- 
import?java.util.List;??
 
- 
import?java.util.Vector;??
 
- 
import?org.codehaus.jackson.JsonGenerator;??
 
- 
import?org.codehaus.jackson.JsonParseException;??
 
- 
import?org.codehaus.jackson.map.JsonMappingException;??
 
- 
import?org.codehaus.jackson.map.ObjectMapper;??
 
- 
import?org.codehaus.jackson.map.SerializationConfig;??
 
- 
import?org.codehaus.jackson.map.SerializerFactory;??
 
- 
import?org.codehaus.jackson.map.SerializerProvider;??
 
- 
import?org.codehaus.jackson.map.introspect.BasicBeanDescription;??
 
- 
import?org.codehaus.jackson.map.ser.BeanPropertyWriter;??
 
- 
import?org.codehaus.jackson.map.ser.BeanSerializer;??
 
- 
import?org.codehaus.jackson.map.ser.CustomSerializerFactory;??
 
- 
import?org.codehaus.jackson.map.ser.StdSerializerProvider;??
 
- /**?
 
- ?*?json处理工具集?
 
- ?*??
 
- ?*?@author?rain?
 
- ?*??
 
- ?*/??
 
- 
public?class?CustomSerialization?{??
 
- ????private?static?final?ObjectMapper?mapper?=?new?ObjectMapper();??
 
- ????static?class?FilteredWriter?extends?BeanPropertyWriter?{??
 
- ????????public?FilteredWriter(BeanPropertyWriter?w)?{??
 
- ????????????super(w);??
 
- ????????}??
 
- ????????public?void?serializeAsField(Object?bean,?JsonGenerator?jgen,??
 
- ????????????????SerializerProvider?prov)?