第一步:导入JSON包
fastjson-1.2.47.jar
fastjson-1.2.47-sources.jar //源码
第二步:建立控制层的处理方法,方法前加@ResponseBody注解,异步处理,返回数据,不是返回视图
@RequestMapping("/useradd")
@ResponseBody
public Object userCodeIsExist(String username){
Map<String,String> resultMap=new HashMap<String,String>();
if(StringUtils.isNullOrEmpty(username)){ //判断字符串是空引用,或值为空。如username=null 或者如username="" 结果为true
resultMap.put("username","flase");
//return "flase";
}else{
resultMap.put("username","true");
//return "true";
}
return JSONArray.toJSONString(resultMap);
}
这里map也可以换成java baen 对象,返回JSON对象,也可以返回字符串。
第三步:视图层
<script type="text/javascript">
function submitCommentTextarea(){
var username=$("#username").val();
$.getJSON("/chun/index/useradd","username="+username,submitCommentCallBack);
}
function submitCommentCallBack(data){
if(data.username=="true"){
alert("评论成功")
$("#h1Index").html("成功");
}else{
alert("评论失败");
$("#h1Index").html("失败");
}
}
</script>
如果传送JSON对象去服务器,需要JSON.stringify(strObject) 转成JSON字符串后在传送
表单元素.serializeArray():from表单序列化
$.getJSON 接收JSON对 象。
get()或者 get()或者get()或者post()返回JSON字符串, $.parseJSON( data );转换成JSON对象;
get()和 get()和get()和post()写法一样。只是$get()方法需要在Tomcat服务器 catalina.properties配置文件里加上下面一条语句,这样传参才认识{}。
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
如需设置请求前调用函数beforeSend,请求失败时被调用的函数error,请求完成后调用的函数complete,设置请求超时时间timeout,都只能用$.ajax({})方法。
解决中文乱码问题:
在 springmvc-servlet.xml设置:
<mvc:annotation-driven>
<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>
解决JSON数据传递的日期格式:
第一种:
在java bean日期属性加上注解 @JSONField(format = “yyyy-MM-dd”)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd")
private Date createDate;
|
|