网站制作视频教程下载重庆网站建设培训班
news/
2025/9/23 19:43:52/
文章来源:
网站制作视频教程下载,重庆网站建设培训班,哪个网站可以学做咸菜,动漫网站建设前期策划1.前端的操作#xff1a;对象接收json数据方式#xff1a;将所需要传的数据转化为json数据#xff0c;并将这些数据以post方式传到后台的controller层#xff0c;然后controller层接收json数据#xff0c;并且是以对象的形式进行接收。这里面是springmvc自动控制将这些数据…1.前端的操作对象接收json数据方式将所需要传的数据转化为json数据并将这些数据以post方式传到后台的controller层然后controller层接收json数据并且是以对象的形式进行接收。这里面是springmvc自动控制将这些数据转化为对象不需要辅助包fastjson。用Map接收json数据需要使用fastjson包(前提json含有对象数据)。在看github项目的学习过程中发现封装的对象中可以有map类型更加方便地接收参数将json数据一一绑定到map映射中方便我们对json数据操作哦。2.代码实现模拟前端传过来的json数据{people: {username: Tom,password: 123456,sex: 男,address: {province: 安徽,city: 芜湖,town: 天堑,village: 小岗村},phones: [{operator: 中国移动,phoneNumber: 12345678901},{operator: 中国联通,phoneNumber: 09876543211}]}}Address.javaimportlombok.Data;Datapublic classAddress {privateString province;privateString city;privateString town;privateString village;}Phone.javaimportlombok.Data;Datapublic classPhone {privateString operator;privateString phoneNumber;}People.javaimportlombok.Data;importjava.util.List;Datapublic classPeople {privateString username;privateString password;privateString sex;privateAddress address;private Listphones;}controller类importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.yyj.demo.pojo.Address;importcom.yyj.demo.pojo.People;importcom.yyj.demo.pojo.Phone;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Map;RestControllerRequestMapping(/people)public classPersonController {RequestMapping(getPeople)public MapgetPeople(RequestBody People people){if(people null){return null;}Map param new HashMap();String speople.getPhones().toString();System.out.println(s);param.put(people,people);returnparam;}RequestMapping(getOtherPeople)public Map getOtherPeople(RequestBody Mapparams){if(params null){System.out.println(系统接收参数错误);return null;}Map map new HashMap();People people newPeople();people.setUsername(params.get(username).toString());people.setPassword(params.get(password).toString());people.setSex(params.get(sex).toString());people.setAddress(JSON.parseObject(JSONObject.toJSONString(params.get(address)),Address.class));people.setPhones((ArrayList) params.get(phones));map.put(people,people);returnmap;}}/*{username: Tom,password: 123456,sex: 男,address: {province: 安徽,city: 芜湖,town: 天堑,village: 小岗村},phones: [{operator: 中国移动,phoneNumber: 12345678901},{operator: 中国联通,phoneNumber: 09876543211}]}*/3.postman测试结果对象接收方式Map接收json数据4.第二种方式需要添加alibaba的fastjson依赖com.alibabafastjson1.2.475.第二种实现方式遇到的各种坑使用ResquestBody Map接收前端json数据,json数据中有数组我们不能用String[]去接收这个数组要用ArrayList去接收原因如下RequsetBody会读取request的body数据之后会调用MappingJackson2HttpMessageConverter解析数据会使用到ObjectMapper,之后this.objectMapper.readValue(inputMessage.getBody(), javaType);javaType是AbstractJackson2HttpMessageConverter中getJavaType优选出来可以解析context的类型.json数据中有对象数据存在时我们不能单纯的去直接用这个对象接收这个数据会报错的。报错内容java.util.LinkedHashMap cannot be cast to ******我的具体做法如下我们可以接收的hashmap转换为json然后再次把这个json转换为对应的对象。(如有更好的办法还望大佬在评论区告诉我一下)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913670.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!