1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

时间:2024-02-12 06:50:09

相关推荐

java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法。

一,json格式字符串

functionsentAjax(){

$.ajax({

type:'POST',

url:"/manage/test/ajax",

dataType :"json",

success:function(result){

//这里result是一个符合json格式的js对象//alert(result.name);

//alert(result[0].name);

//alert(result.listUser[0].name);

}

});

}

java代码

@RequestMapping(value = "/ajax")public voidtestAjax(HttpServletRequest request, HttpServletResponse response){try{

String jsonStr1= "{\"name\":\"张三\",\"age\":23}";

String jsonStr2= "[{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}]";

String jsonStr3= "{\"listUser\": [{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}] }";

response.setCharacterEncoding("utf-8");//响应字符集的编码格式

response.getWriter().print(jsonStr3);

}catch(IOException e) {

e.printStackTrace();

}

}

另外使用spring的@ResponseBody这个注解的话还可以这样写

@RequestMapping("/ajax")

@ResponseBodypublicObject testAjax1(HttpServletRequest request, HttpServletResponse response){

String jsonStr1= "{\"name\":\"张三\",\"age\":23}";

String jsonStr2= "[{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}]";

String jsonStr3= "{\"listUser\": [{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}] }";returnjsonStr1;

}

二,java对象

@RequestMapping(value = "/ajax")public voidtestAjax2(HttpServletRequest request, HttpServletResponse response){try{

User user= newUser();

user.setName("张三");

user.setAge(23);

JSONObject jsonObject=JSONObject.fromObject(user);

response.setCharacterEncoding("utf-8");//响应字符集的编码格式

response.getWriter().print(jsonObject.toString());

}catch(IOException e) {

e.printStackTrace();

}

}

使用以上的方式的话要先把java对象转换成json格式的字符串。

下面使用springmvc的@ResponseBody这个注解,也是在springmvc的web项目开发中经常用到的。

@RequestMapping(value = "/ajax")

@ResponseBodypublicObject testAjax3(HttpServletRequest request, HttpServletResponse response){

User user= newUser();

user.setName("张三");

user.setAge(23);returnuser;

}

在这里@ResponseBody这个注解对于json格式数据的解析用到了jackson这个框架另外它对响应对象response进行了封装,这让我们在异步请求中使用json格式的数据进行数据交互更加的方便。它的实现原理如下:

@RequestMapping(value = "/ajax4")public voidtestAjax4(HttpServletRequest request, HttpServletResponse response){try{

User user= newUser();

user.setName("张三");

user.setAge(23);

ObjectMapper mapper= newObjectMapper();

String userStr=mapper.writeValueAsString(user);

response.setCharacterEncoding("utf-8");//响应字符集的编码格式

response.getWriter().print(userStr);

}catch(IOException e) {

e.printStackTrace();

}

}

另外在使用json格式数据交互时如有以下用法:

@RequestMapping(value = "/ajax5")

@ResponseBodypublicObject testAjax5(HttpServletRequest request, HttpServletResponse response){

Map jsonMap = newHashMap();

String jsonStr1= "{\"name\":\"张三\",\"age\":23}";

jsonMap.put("json", jsonStr1);returnjsonMap;

}

前段应该这样写:

functionsentAjax(){

$.ajax({

type:'POST',

url:"/manage/test/ajax5",

dataType :"json",

success:function(result){

//result.json取到的只是map在前端转换成json格式js对象时key为'json'对应的字符串的值,在前段json格式的字符串转换成json格式js对象推荐使用 JSON.parse()这个函数。var jsonStr =JSON.parse(result.json);

alert(jsonStr.name)

}

});

}

最后说一点,我们作为程序员,研究问题还是要仔细深入一点的。当你对原理了解的有够透彻,开发起来也就得心应手了,很多开发中的问题和疑惑也就迎刃而解了,而且在面对其他问题的时候也可做到触类旁通。当然在开发中没有太多的时间让你去研究原理,开发中要以实现功能为前提,可等项目上线的后,你有大把的时间或者空余的时间,你大可去刨根问底,深入的去研究一项技术,为觉得这对一名程序员的成长是很重要的事情。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。