??
JSON 語(yǔ)法 | 菜鳥教程
為實(shí)現(xiàn)瀏覽器與控制器類之間的 JSON 數(shù)據(jù)交互,
Spring MVC 提供了 MappingJackson2HttpMessageConverter 實(shí)現(xiàn)類默認(rèn)處理 JSON 格式請(qǐng)求響應(yīng)。該實(shí)現(xiàn)類利用 Jackson 開源包讀寫 JSON 數(shù)據(jù),將 Java 對(duì)象轉(zhuǎn)換為 JSON 對(duì)象和 XML 文檔,同時(shí)也可以將 JSON 對(duì)象和 XML 文檔轉(zhuǎn)換為 Java 對(duì)象。
在使用注解開發(fā)時(shí)需要用到兩個(gè)重要的 JSON 格式轉(zhuǎn)換注解,
分別是 @RequestBody 和 @ResponseBody
-
@RequestBody:用于將請(qǐng)求體中的數(shù)據(jù)綁定到方法的形參中,該注解應(yīng)用在方法的形參上
-
@ResponseBody:用于直接返回 return 對(duì)象,該注解應(yīng)用在方法上。
1.1 引入jackson
項(xiàng)目依賴于:
jackson-databind-2.12.0.jar jackson-annotations-2.12.0.jar jackson-core-2.12.0.jar
在pom.xml文件中只需要加入下面的依賴 其它兩個(gè)會(huì)自動(dòng)下載文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-562527.html
<dependency>
?<groupId>com.fasterxml.jackson.core</groupId>
?<artifactId>jackson-databind</artifactId>
?<version>2.12.0</version>
</dependency>
1.2 編寫POJO
@Data
public class Good {
? ?String name;
? ?double price;
? ?int num;
}
1.3 編寫Controller
@Controller
public class GoodController {
? @PostMapping("/goods")
? ?public ModelAndView test(@RequestBody Good good){
? ?ModelAndView mv=new ModelAndView();
? ?mv.addObject("msg",
? ? ? ? ? ?"商品名稱:"+good.getName()+
? ? ? ? ? ? ? ? ? ?",商品價(jià)格:"+good.getPrice()+
? ? ? ? ? ? ? ? ? ?",商品數(shù)量:"+good.getNum());
? ?mv.setViewName("good");
? ?return mv;
? }
? ?
? ?//使用idea中 RestfulTool工具插件設(shè)置
? ?//假如寫了一個(gè)相同的地址會(huì)執(zhí)行哪一個(gè)?
? ?@GetMapping("/goods")
? ?public Good test2(){
? ? ? Good g=new Good();
? ? ? g.setName("蘋果");
? ? ? g.setPrice(89);
? ? ? g.setNum(20);
? ? ? ?return g;
? }
? ?
? ?@RequestMapping(value = "/good/save",method={RequestMethod.POST})
? ?@ResponseBody
? ?public Good save(@RequestBody Good good){
? ? ? ?System.out.println(good.toString());
? ? ? ?return good;
? }
}
good頁(yè)面:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-562527.html
<%@page pageEncoding="UTF-8" language="java" contentType="text/html;UTF-8" %>
<html>
<body>
<h1>商品詳情頁(yè)</h1>
<p>${msg}</p>
</body>
</html>
1.4 Map接收
@RequestMapping(value = "/good/save2",method={RequestMethod.POST})
@ResponseBody
public Map test (@RequestBody ?Map map){
? ?//第一種方式
?/* Set<Map.Entry<String, Object>> set=map.entrySet();;
? ? ? ?Iterator<Map.Entry<String, Object>> it=set.iterator();
? ? ? ?while(it.hasNext()){
? ? ? ? ? ?Map.Entry<String, Object> entry=it.next();
? ? ? ? ? ?System.out.println(entry.getKey()+"=="+entry.getValue());
? ? ? ?}*/
? ?
? ? ? ?//第二種方式遍歷
? ? ? /* Set<String> s1=map.keySet();
? ? ? ?for (String key : s1) {
? ? ? ? ? ?Object value = map.get(key);
? ? ? ? ? ?System.out.println(key+"==="+value);
? ? ? ?}*/
? ? ? ?// 第三種方式遍歷 lamubda表達(dá)式
? ? ? ?map.forEach((key,value)->{
? ? ? ? ? ?if(key !=null){
? ? ? ? ? ? ? ?System.out.println(key+"==="+value);
? ? ? ? ? }
? ? ? });
? ? ?
? ?return map;
}
到了這里,關(guān)于Spring MVC JSON 數(shù)據(jù)交互的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!