成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發必掌握!Json數據交互和ResTful開發

開發 前端
JSON(JavaScript Object Notation,JS對象標記)是一種輕量級的數據交換格式。它是基于JavaScript的一個子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他語言的約定,采用完全獨立于編程語言的文本格式來存儲和表示數據。

[[432778]]

本文轉載自微信公眾號「程序員千羽」,作者程序員千羽。轉載本文請聯系程序員千羽公眾號。

GitHub:https://github.com/nateshao/ssm/tree/master/109-springmvc-json-restful

1. JSON數據交互

什么是JSON?

JSON(JavaScript Object Notation,JS對象標記)是一種輕量級的數據交換格式。它是基于JavaScript的一個子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他語言的約定,采用完全獨立于編程語言的文本格式來存儲和表示數據。

JSON有什么特點?

  • JSON與XML非常相似,都是用來存儲數據的,并且都是基于純文本的數據格式。與XML相比,JSON解析速度更快,占用空間更小,且易于閱讀和編寫,同時也易于機器解析和生成。

JSON有如下兩種數據結構:

  • 對象結構
  • 數組結構

JSON對象結構

在對象結構以“{”開始,以“}”結束。中間部分由0個或多個以英文“,”分隔的name:value對構成(注意name和value之間以英文“:”分隔),其存儲形式如下圖所示。

對象結構的語法結構代碼如下:

例如:一個address對象包含城市、街道、郵編等信息,使用JSON的表示形式如下:{"city":"Beijing","street":"Xisanqi","postcode":100096}

JSON數組結構

“數組結構以“[”開始,以“]”結束。中間部分由0個或多個以英文“,”分隔的值的列表組成,其存儲形式如下圖所示。

對象結構的語法結構代碼如下:

  1.             value1, 
  2.             value2, 
  3.              ... 

例如,一個數組包含了String、Number、Boolean、null類型數據,使用JSON的表示形式如下:

  1. ["abc",12345,false,null

對象、數組數據結構也可以分別組合構成更為復雜的數據結構。例如:一個person對象包含name、hobby和address對象,其代碼表現形式如下:

  1.     "name""zhangsan" 
  2.     "hobby":["籃球","羽毛球","游泳"
  3.     "address":{ 
  4.         "city":"Beijing" 
  5.         "street":"Xisanqi" 
  6.         "postcode":100096 
  7.     } 
  8.  } 

注意:如果使用JSON存儲單個數據(如“abc”),一定要使用數組的形式,不要使用Object形式,因為Object形式必須是“名稱:值”的形式。

JSON數據轉換

Spring提供了一個HttpMessageConverter接口來實現瀏覽器與控制器類(Controller)之間的數據交互。該接口主要用于將請求信息中的數據轉換為一個類型為T的對象,并將類型為T的對象綁定到請求方法的參數中,或者將對象轉換為響應信息傳遞給瀏覽器顯示。

HttpMessageConverter< T >接口有很多實現類,這些實現類可以對不同類型的數據進行信息轉換。其中MappingJackson2HttpMessageConverter是Spring MVC默認處理JSON格式請求響應的實現類。該實現類利用Jackson開源包讀寫JSON數據,將Java對象轉換為JSON對象和XML文檔,同時也可以將JSON對象和XML文檔轉換為Java對象。

要使用MappingJackson2HttpMessageConverter對數據進行轉換,就需要使用Jackson的開源包,開發時所需的開源包及其描述如下所示:

  • jackson-annoations-2.8.8.jar:JSON轉換注解包;
  • jackson-core-2.8.8.jar:JSON轉換核心包;
  • jackson-databind-2.8.8.jar:JSON轉換的數據綁定包。

下載地址:http://mvnrepository.com/artifact/com.fasterxml.jackson.core

使用的注解

在使用注解式開發時,需要用到2個重要的JSON格式轉換注解,分別為@RequestBody和@ResponseBody,關于這兩個注解的說明如下表所示:

JSON數據轉換代碼演示:

多學一招:1.使用< bean >標簽方式的JSON轉換器配置

小提示:使用< bean >標簽配置注解方式的處理器映射器和處理器適配器必須配對使用。

多學一招:2. 配置靜態資源的訪問方式

除了使用< mvc:resources >元素可以實現對靜態資源的訪問外,還有另外2種靜態資源訪問的配置方式,分別如下:

1.在springmvc-config.xml文件中,使用< mvc:default-servlet-handler >標簽

  1. <mvc:default-servlet-handler /> 

2.激活Tomcat默認的Servlet來處理靜態文件訪問

  1. <!--激活tomcat的靜態資源攔截,需要哪些靜態文件,再往下追加--> 
  2. <servlet-mapping> 
  3.  <servlet-name>default</servlet-name
  4.  <url-pattern>*.js</url-pattern> 
  5. </servlet-mapping> 
  6. <servlet-mapping> 
  7.  <servlet-name>default</servlet-name
  8.  <url-pattern>*.css</url-pattern> 
  9. </servlet-mapping> 
  10. ... 

以上兩種方式本質上是一樣的,都是使用Web服務器默認的Servlet來處理靜態資源文件的訪問。其中Servelt名稱也是由使用的服務器來確定的,不同的服務器需要使用不同的名稱,常用服務器及其Servlet名稱如下:

  • Tomcat, Jetty, JBoss, and GlassFish默認Servlet的名稱—— "default";
  • Google App Engine默認Servlet的名稱——"_ah_default";
  • Resin默認Servlet的名稱——"resin-file";
  • WebLogic默認Servlet的名稱—— "FileServlet";
  • WebSphere默認Servlet的名稱——"SimpleFileServlet"。

2. RESTful支持

什么是RESTful?

你回去了解一下RESTful風格之前也寫過

“RESTful也稱之為REST,是英文“Representational State Transfer”的簡稱。可以將他理解為一種軟件架構風格或設計風格,而不是一個標準。

簡單來說,RESTful風格就是把請求參數變成請求路徑的一種風格。

代碼演示:將采用RESTful風格的請求實現對用戶信息的查詢,同時返回JSON格式的數據。

小結

主要對Spring MVC中的JSON數據交互和RESTful風格的請求進行了詳細的講解。

首先簡單介紹了JSON的概念、作用和結構,

然后通過案例講解了Spring MVC中如何實現JSON數據的交互。

接著講解了什么是RESTful,最后通過用戶信息查詢案例來演示RESTful的實際使用。

 

通過這篇文章的學習,我們可以掌握Spring MVC中的JSON數據交互和對RESTful風格支持,這對今后實際工作開發有極大的幫助。

 

責任編輯:武曉燕 來源: 程序員千羽
相關推薦

2021-11-29 10:50:14

鴻蒙HarmonyOS應用

2009-01-18 15:14:00

數據倉庫開發OLTP

2025-02-10 08:18:27

JSON數據交換格式

2010-02-06 13:46:55

Android開發

2010-02-06 15:28:12

ibmdwStrutsREST

2009-09-22 13:02:05

ibmdwStruts

2013-05-06 15:41:30

Android開發資源

2013-07-18 17:22:07

Android開發資源Android開發學習Android開發

2024-09-23 15:02:40

2011-08-08 15:05:50

iPhone 網站

2023-09-18 08:27:44

插件Java

2023-09-16 18:40:43

Java插件

2018-11-26 09:55:07

MySQL誤刪數據數據庫

2023-10-16 16:05:44

PythonPyCharm編程語言

2024-07-25 08:43:35

2016-01-14 09:52:21

JavaIntelliJ ID插件

2020-10-16 10:21:23

大數據開發軟件開發技術

2013-02-20 15:29:00

JSONAndroid開發

2011-08-04 15:24:53

iPhone開發 交互 MVC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看成人 | 色av一区| 亚洲欧美综合精品久久成人 | 久久免费精品 | 日日干日日操 | 久久久久亚洲精品 | 欧美激情网站 | 日本视频中文字幕 | 日韩一区二区三区在线 | 日韩伦理一区二区 | av天天爽| 欧美国产视频 | 国产精品a免费一区久久电影 | 一区二区三区在线播放 | 精品毛片| 成人高潮片免费视频欧美 | 国产精品揄拍一区二区久久国内亚洲精 | 成人在线电影网站 | 日本免费一区二区三区 | 国产欧美一区二区精品忘忧草 | 日韩精品免费看 | 91精品国产乱码久久久久久久久 | 欧美精品在线免费观看 | 美女拍拍拍网站 | 国产成人免费在线观看 | 午夜99| 久久久久久国产精品 | 91精品国产综合久久久久久丝袜 | 欧美色性| 欧美激情一区二区三区 | 男女免费在线观看视频 | 国产午夜精品视频 | 久久久久久中文字幕 | 久久久www成人免费精品张筱雨 | 日本午夜在线视频 | 365夜爽爽欧美性午夜免费视频 | 久久一区 | 国产日韩欧美精品 | 欧美精品一区二区三区四区五区 | 国产观看| 2018国产大陆天天弄 |