JSON對象的處理
1. JSON:數據格式
{屬性名:屬性值,屬性名:屬性值...}
2. ajax(局部刷新,異步刷新)
$.ajax({
type:"GET",//請求類型
url:path+"/jsp/user.do",//請求的url
data:{method:"getrolelist"},//請求參數
dataType:"json",//ajax接口(請求url)返回的數據類型
success:function(data){//data:返回數據(json對象)
//核心的處理
},
error:function(data){//當訪問時候,404,500 等非200的錯誤狀態碼
validateTip(userRole.next(),{"color":"red"},imgNo+" 獲取用戶角色列表error",false);
}
});
3. JSON對象的處理
第一步:導入fastjson-1.2.13.jar
第二步:寫controller
返回值:Object(JSON對象)
return JSONArray.toJSONString(HashMap);
第三步:配置@ResponseBody
作用:將標注該注解的處理方法的返回結果直接寫入HTTP Response Body中,一般會在異步獲取數據時使用.
4. JSON中文亂碼解決方案
1) 方案一:
指定返回的內容類型為json格式數據,並且字符串的轉換編碼為 “UTF-8”
@RequestMapping(value="/view",
method=RequestMethod.GET,
produces={"application/json;charset=UTF-8"})
2)方案二:
在裝配消息轉換器StringHttpMessageConverter,設置字符編碼為UTF-8
supportedMediaTypes屬性
指定媒體類型:application/json
字符編碼:UTF-8
例: <mvc:annotation-driven >
<!-- json返回中文亂碼-->
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
5. JSON日期格式
1)解決方案一:在pojo對應的屬性使用注解方式
注解方式:@JSONField(format= "yyyy-MM-dd")
2)解決方案二
配置FastJson的消息轉換器-FastJsonHttpMessageConverter
設置features屬性:指定輸出時的日期轉換器為WriteDateUseDateFormat
例: <mvc:annotation-driven >
<!-- json返回中文亂碼-->
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;chaset=UTF-8</value>
</list>
</property>
<property name="features">
<list>
<value>WriteDateUseDateFormat</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
6. 小結
對於JSON數據中的日期格式處理(FastJson)
默認輸出時間戳
轉換輸出yyyy-MM-dd HH:mm:ss格式的日期
配置消息轉換器中的<value>WriteDateUseDateFormat</value>
注解優先( yyyy-MM-dd )
配置消息轉換器中的<value>WriteDateUseDateFormat</value>
增加屬性注解@JSONField(format="yyyy-MM-dd")
