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

開發(fā)必掌握!Json數(shù)據(jù)交互和ResTful開發(fā)

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

[[432778]]

本文轉(zhuǎn)載自微信公眾號「程序員千羽」,作者程序員千羽。轉(zhuǎn)載本文請聯(lián)系程序員千羽公眾號。

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

1. JSON數(shù)據(jù)交互

什么是JSON?

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

JSON有什么特點(diǎn)?

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

JSON有如下兩種數(shù)據(jù)結(jié)構(gòu):

  • 對象結(jié)構(gòu)
  • 數(shù)組結(jié)構(gòu)

JSON對象結(jié)構(gòu)

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

對象結(jié)構(gòu)的語法結(jié)構(gòu)代碼如下:

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

JSON數(shù)組結(jié)構(gòu)

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

對象結(jié)構(gòu)的語法結(jié)構(gòu)代碼如下:

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

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

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

對象、數(shù)組數(shù)據(jù)結(jié)構(gòu)也可以分別組合構(gòu)成更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。例如:一個(gè)person對象包含name、hobby和address對象,其代碼表現(xiàn)形式如下:

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

注意:如果使用JSON存儲單個(gè)數(shù)據(jù)(如“abc”),一定要使用數(shù)組的形式,不要使用Object形式,因?yàn)镺bject形式必須是“名稱:值”的形式。

JSON數(shù)據(jù)轉(zhuǎn)換

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

HttpMessageConverter< T >接口有很多實(shí)現(xiàn)類,這些實(shí)現(xiàn)類可以對不同類型的數(shù)據(jù)進(jìn)行信息轉(zhuǎn)換。其中MappingJackson2HttpMessageConverter是Spring MVC默認(rèn)處理JSON格式請求響應(yīng)的實(shí)現(xiàn)類。該實(shí)現(xiàn)類利用Jackson開源包讀寫JSON數(shù)據(jù),將Java對象轉(zhuǎn)換為JSON對象和XML文檔,同時(shí)也可以將JSON對象和XML文檔轉(zhuǎn)換為Java對象。

要使用MappingJackson2HttpMessageConverter對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,就需要使用Jackson的開源包,開發(fā)時(shí)所需的開源包及其描述如下所示:

  • jackson-annoations-2.8.8.jar:JSON轉(zhuǎn)換注解包;
  • jackson-core-2.8.8.jar:JSON轉(zhuǎn)換核心包;
  • jackson-databind-2.8.8.jar:JSON轉(zhuǎn)換的數(shù)據(jù)綁定包。

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

使用的注解

在使用注解式開發(fā)時(shí),需要用到2個(gè)重要的JSON格式轉(zhuǎn)換注解,分別為@RequestBody和@ResponseBody,關(guān)于這兩個(gè)注解的說明如下表所示:

JSON數(shù)據(jù)轉(zhuǎn)換代碼演示:

多學(xué)一招:1.使用< bean >標(biāo)簽方式的JSON轉(zhuǎn)換器配置

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

多學(xué)一招:2. 配置靜態(tài)資源的訪問方式

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

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

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

2.激活Tomcat默認(rèn)的Servlet來處理靜態(tài)文件訪問

  1. <!--激活tomcat的靜態(tài)資源攔截,需要哪些靜態(tài)文件,再往下追加--> 
  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. ... 

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

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

2. RESTful支持

什么是RESTful?

你回去了解一下RESTful風(fēng)格之前也寫過

“RESTful也稱之為REST,是英文“Representational State Transfer”的簡稱。可以將他理解為一種軟件架構(gòu)風(fēng)格或設(shè)計(jì)風(fēng)格,而不是一個(gè)標(biāo)準(zhǔn)。

簡單來說,RESTful風(fēng)格就是把請求參數(shù)變成請求路徑的一種風(fēng)格。

代碼演示:將采用RESTful風(fēng)格的請求實(shí)現(xiàn)對用戶信息的查詢,同時(shí)返回JSON格式的數(shù)據(jù)。

小結(jié)

主要對Spring MVC中的JSON數(shù)據(jù)交互和RESTful風(fēng)格的請求進(jìn)行了詳細(xì)的講解。

首先簡單介紹了JSON的概念、作用和結(jié)構(gòu),

然后通過案例講解了Spring MVC中如何實(shí)現(xiàn)JSON數(shù)據(jù)的交互。

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

 

通過這篇文章的學(xué)習(xí),我們可以掌握Spring MVC中的JSON數(shù)據(jù)交互和對RESTful風(fēng)格支持,這對今后實(shí)際工作開發(fā)有極大的幫助。

 

責(zé)任編輯:武曉燕 來源: 程序員千羽
相關(guān)推薦

2021-11-29 10:50:14

鴻蒙HarmonyOS應(yīng)用

2009-01-18 15:14:00

數(shù)據(jù)倉庫開發(fā)OLTP

2025-02-10 08:18:27

JSON數(shù)據(jù)交換格式

2010-02-06 15:28:12

ibmdwStrutsREST

2010-02-06 13:46:55

Android開發(fā)

2009-09-22 13:02:05

ibmdwStruts

2013-05-06 15:41:30

Android開發(fā)資源

2013-07-18 17:22:07

Android開發(fā)資源Android開發(fā)學(xué)習(xí)Android開發(fā)

2024-09-23 15:02:40

2011-08-08 15:05:50

iPhone 網(wǎng)站

2023-09-16 18:40:43

Java插件

2023-09-18 08:27:44

插件Java

2018-11-26 09:55:07

MySQL誤刪數(shù)據(jù)數(shù)據(jù)庫

2024-07-25 08:43:35

2023-10-16 16:05:44

PythonPyCharm編程語言

2016-01-14 09:52:21

JavaIntelliJ ID插件

2020-10-16 10:21:23

大數(shù)據(jù)開發(fā)軟件開發(fā)技術(shù)

2013-02-20 15:29:00

JSONAndroid開發(fā)

2011-08-04 15:24:53

iPhone開發(fā) 交互 MVC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 美日韩视频| 欧美二区乱c黑人 | 亚洲国产激情 | 日韩欧美三级电影 | 天天操 天天操 | 视频二区| 久久久精品天堂 | 最新中文字幕在线播放 | 二区视频| 成人免费一区二区 | 日韩成人免费视频 | 欧美色综合天天久久综合精品 | 精品视频久久久 | 国产成都精品91一区二区三 | 亚洲一二三在线 | 欧美一级片免费看 | 美女视频三区 | 久久精品久久久久久 | 天天色综网 | 国产区在线视频 | av喷水 | 九色视频网站 | 久久久久久网站 | 久久久久免费观看 | 一区二区三区在线免费观看 | 国产成在线观看免费视频 | 国产精品欧美一区二区三区不卡 | 色综合99 | 激情网站在线观看 | 亚洲精品一区二区三区 | 99爱国产 | 日韩精品在线视频 | 91国产精品在线 | 成人动慢 | 国产精品国产a级 | 伊人在线| 色综合中文 | 久久久高清 | 国产激情一区二区三区 | 色婷婷综合成人av | 成人网av|