详解springMVC之与json数据交互方法

2025-05-29 0 98

前台代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34
function channel(){

//先获取选中的值

var channelId = $("#channelId option:selected").val();

//来判断发送的链接

if(channelId ==2){

**需要注意地方 start**

var schoolBannerInfo = {

"img": channelId,

"title": channelId,

"info": channelId,

"channelId": channelId

};

**需要注意地方 end**

$.ajax({

url:"ceshijson",

type:"post",

dataType:'json',

**需要注意地方 start**

contentType:'application/json;charset=utf-8',

data:JSON.stringify(schoolBannerInfo),

**需要注意地方 end**

success:function(data){

alert(data);

},

error:function(XMLHttpRequest, textStatus, errorThrown){

alert("Error")

alert(XMLHttpRequest.status);

alert(XMLHttpRequest.readyState);

alert(textStatus);

}

});

}

}

加粗的部分是要注意的地方。

其中contentType:'application/json;charset=utf-8'不能省掉,否则会报415错误。

毕竟我发送的是json字符串,得告诉服务器,来的数据是json数据。

JSON.stringify()是将JavaScript对象转换为json字符串

JSON.parse(jsonstr)是将json字符串转换为JavaScript对象

补充知识:json其实就是JavaScript的子集。

后台代码:

pojo类:

?

1

2

3

4

5

6

7

8

9

10

11

12

13
public class SchoolBannerInfo {

private Integer id;

private Date createTime;

private String img;

private String title;

private String info;

private Integer seq;

private Integer schoolId;

private String type;

private boolean enable;

private String link;

private String channelId;

}

get与set方法自己生成,这个就不贴出来了。

controller中方法:

?

1

2

3

4

5

6

7

8

9
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")

@ResponseBody

public SchoolBannerInfo ceshijson(@RequestBody SchoolBannerInfo schoolBannerInfo) throws IOException{

// Map<String,Object> map = new HashMap<String,Object>();

// map.put("channelId", channelId);

// ObjectMapper mapper = new ObjectMapper();

// channelId = mapper.writeValueAsString(map);

return schoolBannerInfo;

}

注意:

1、@RequestBody不能省,因为前台发过来的数据是json数据,得用这个注解去解析该怎么接收这些数据给pojo类的对象。

2、因为我也要返回json数据。所以需要这个注解@ResponseBody,把Java对象转换成json字符串

3、当使用@RequestBody时,要求前台传过来的数据是json字符串。如果是json对象是会出错的。所以如果你前台data部分这么写:data:{“channelId”:2},这样是不行的。因为{“channelId”:2}是json对象,你需要再在外层加个引号'{“channelId”:2}'这样才行。

4、要是方法返回值为简单类型比如:String时,该如何处理呢!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://blog.csdn.net/u013066244/article/details/50599792

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 详解springMVC之与json数据交互方法 https://www.kuaiidc.com/116487.html

相关文章

发表评论
暂无评论