//方法一
List<RequestParam> requestParams = JSONArray.parseArray(test, RequestParam.class);
//方法二
requestParams = JSON.parseObject(test, new TypeReference<List<RequestParam>>(RequestParam.class){});
//通常,我們會希望在響應前臺的時候,null弄成"",集合爲null的弄成[],那麼fastjson也爲我們聽過了便利的特性來達到效果
HomeFloorBean2 homeFloorBean2 = new HomeFloorBean2();
homeFloorBean2.setName("test");
System.out.println("fastjson:" + JSON.toJSONString(homeFloorBean2, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty));
//關於fastjson對象爲null的時候,處理變爲""
/**
* 處理對象爲null
* @param object
* @param features
* @return
*/
private String toJSONString(Object object, SerializerFeature... features) {
SerializeWriter out = new SerializeWriter();
String s;
JSONSerializer serializer = new JSONSerializer(out);
SerializerFeature arr$[] = features;
int len$ = arr$.length;
for (int i$ = 0; i$ < len$; i$++) {
SerializerFeature feature = arr$[i$];
serializer.config(feature, true);
}
serializer.getValueFilters().add(new ValueFilter() {
public Object process(Object obj, String s, Object value) {
if (null != value) {
if (value instanceof java.util.Date) {
return String.format("%1$tF %1tT", value);
}
return value;
} else {
return "";
}
}
});
serializer.write(object);
s = out.toString();
out.close();
return s;
}
//fastjson和springMVC替換jackson
<bean id="fastJsonConfig" class="com.alibaba.fastjson.support.config.FastJsonConfig">
<property name="serializerFeatures">
<list>
<!-- 輸出key時是否使用雙引號 -->
<value>QuoteFieldNames</value>
<!-- 是否輸出值爲null的字段 -->
<value>WriteMapNullValue</value>
<!-- 數值字段如果爲null,輸出爲0,而非null -->
<value>WriteNullNumberAsZero</value>
<!-- List字段如果爲null,輸出爲[],而非null -->
<value>WriteNullListAsEmpty</value>
<!-- 字符類型字段如果爲null,輸出爲"",而非null -->
<value>WriteNullStringAsEmpty</value>
<!-- Boolean字段如果爲null,輸出爲false,而非null -->
<value>WriteNullBooleanAsFalse</value>
<!-- null String不輸出 -->
<value>WriteNullStringAsEmpty</value>
<!-- null String也要輸出 -->
<value>WriteMapNullValue</value>
<!-- Date的日期轉換器 -->
<value>WriteDateUseDateFormat</value>
<!-- 將Long類型寫爲String類型解決js精度丟失問題 -->
<value>BrowserCompatible</value>
</list>
</property>
</bean>
<!-- 會自動註冊了validator ConversionService -->
<mvc:annotation-driven>
<!--enableMatrixVariables="true">-->
<mvc:message-converters register-defaults="true">
<!-- StringHttpMessageConverter編碼爲UTF-8,防止亂碼 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text"/>
<constructor-arg index="1" value="html"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="*"/>
<constructor-arg index="1" value="*"/>
<constructor-arg index="2" value="UTF-8"/>
</bean>
</list>
</property>
</bean>
<!-- 避免IE執行AJAX時,返回JSON出現下載文件 -->
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"
id="fastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>text/json;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
<!--序列化選項-->
<property name="fastJsonConfig" ref="fastJsonConfig"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>