您的位置:首页 > 编程语言 > Java开发

SpringMVC整合FastJson及简单使用

2017-09-09 13:15 477 查看

1.FastJson介绍

     Fastjson是阿里巴巴的一个Java语言编写的高性能功能完善的JSON库。

   

     特性:

在服务器端和android客户端提供最佳性能
提供简单toJSONString()和parseObject()方法的Java对象转换为JSON,反之亦然
允许存在的无法改变的对象转换为从JSON
Java泛型的广泛支持
允许自定义表示对象
支持任意复杂的对象(深继承层次结构和广泛使用泛型类型)
     主要特点:

快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)

强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

零依赖(没有依赖其它任何类库除了JDK)

支持注解

     以上摘录自:http://blog.csdn.net/vbirdbest/article/details/72472149
    
传送门:GitHub上FastJson项目中文wiki

2.springmvc整合FastJson

在springmvc的xml配置文件中,填入如下配置。
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>

通常默认配置已经可以满足大部分使用场景,如果你想对它进行自定义配置的话,你可以添加
FastJsonConfig
Bean。
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="fastJsonConfig" ref="fastJsonConfig"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

<bean id="fastJsonConfig" class="com.alibaba.fastjson.support.config.FastJsonConfig">
<!--   自定义配置...   -->
</bean>

3.Fastjson的使用

      Fastjson的对json的解析不是自动的,需要手动调用方法进行转换。

FastJson API
// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);

// 把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);

// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);

// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);

// 把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);

// 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);

// 将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);

// 将JavaBean转换为JSONObject或者JSONArray
public static final Object toJSON(Object javaObject);


FastJson注解:
             用得最多的就是@JsonField注解,其它的我目前还不知道

             给出示例:

           
public class Person {
@JSONField(name="name")  //也可以写在getter和setter方法上,网上说写在方法上更符合预期。
private String name;

@JSONField(name="age")
private String age;

@JSONField(name="desc")
private String desc;
@JSONField(serialize=false) //在序列化的时候就不包含这个字段了。deserialize与之相反
private Long ProjectID


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: