亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC中Json數(shù)據(jù)交互處理示例詳解

 更新時間:2025年03月03日 08:23:15   作者:Y小夜  
這篇文章主要介紹了SpringMVC中Json數(shù)據(jù)交互處理的相關(guān)資料,分別講解了JSON的基本概念、構(gòu)成要素、數(shù)據(jù)類型、對象和數(shù)組的表示方法、字符串的轉(zhuǎn)義規(guī)則以及JSON與JavaScript的關(guān)系,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

Json概述

Json構(gòu)成要素

  • 基本數(shù)據(jù)類型:JSON 定義了少數(shù)幾個基本數(shù)據(jù)類型,它們是數(shù)字、布爾值、字符串、數(shù)組、對象以及 null。這些數(shù)據(jù)類型構(gòu)成了 JSON 處理數(shù)據(jù)的基礎(chǔ),并且它們與大多數(shù)編程語言的原生數(shù)據(jù)類型相兼容。
  • 對象表示:在 JSON 中,對象是由鍵值對構(gòu)成的集合,用花括號括起來。每個鍵名后面跟著一個冒號和相應(yīng)的值,不同的鍵值對之間用逗號隔開。對象的鍵通常使用雙引號包圍的字符串表示。
  • 數(shù)組表示:數(shù)組是值的有序集合,以方括號括起來。數(shù)組中的值可以是簡單類型,也可以是對象或其他數(shù)組,且數(shù)組可以嵌套。
  • 值的多樣性:JSON 的值可以是簡單類型,也可以是對象或數(shù)組。這種靈活的結(jié)構(gòu)使得 JSON 能夠高效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
  • 字符串的轉(zhuǎn)義:JSON 的字符串必須使用雙引號括起來,并且可以包含轉(zhuǎn)義字符來表示那些無法直接輸入的字符,例如回車符或制表符。

JSON 與 JavaScript 的關(guān)系

  • 序列化與反序列化:在 JavaScript 中,可以使用 JSON.stringify() 方法將一個對象序列化為 JSON 格式的字符串,而 JSON.parse() 方法則可以將一個 JSON 格式的字符串反序列化回一個 JavaScript 對象。
  • 語言無關(guān)性:盡管 JSON 是基于 JavaScript 的語法,但它是獨(dú)立于語言的。許多其他的編程語言也提供了解析和生成 JSON 數(shù)據(jù)的庫,這體現(xiàn)了 JSON 作為數(shù)據(jù)交換格式的通用性。

JSON 的優(yōu)點(diǎn)

  • 可讀性強(qiáng):由于 JSON 采用簡潔的文本格式,它非常容易被人閱讀和理解,同時也容易由程序進(jìn)行解析。
  • 解析速度快:相較于 XML,JSON 具有更小的體積和更快的解析速度。它的設(shè)計(jì)初衷就是為了提升數(shù)據(jù)交換的效率。
  • 跨語言支持:JSON 被廣泛支持的特性使其成為不同編程環(huán)境間理想的數(shù)據(jù)交換格式。無論是動態(tài)語言還是靜態(tài)語言,都能找到相應(yīng)的 JSON 解析庫。

JSON 的應(yīng)用

  • Web 應(yīng)用:在 Web 開發(fā)中,JSON 常用于客戶端與服務(wù)器之間的數(shù)據(jù)傳輸。由于其輕量化的特點(diǎn),非常適合于 AJAX 通信。
  • API 服務(wù):現(xiàn)代的 Web API,如 RESTful API,通常選擇 JSON 作為其主要的數(shù)據(jù)交換格式,因?yàn)樗唵?、靈活且易于擴(kuò)展。
  • 配置文件:JSON 格式也被用作應(yīng)用程序的配置文件,它可以存儲應(yīng)用設(shè)置和參數(shù),便于程序讀取和修改

JSON 工具的使用

  • 格式化與校驗(yàn):在線的 JSON 工具允許用戶對 JSON 數(shù)據(jù)進(jìn)行格式化和校驗(yàn),幫助開發(fā)者快速定位格式錯誤并進(jìn)行修正。
  • 數(shù)據(jù)轉(zhuǎn)換:一些工具還提供 JSON 到各類編程語言特定數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換功能,例如將 JSON 轉(zhuǎn)換為 Java 或 C# 實(shí)體類。
  • 編碼與解碼:對于特殊編碼需求,例如 URL 編碼或 Base64 編碼,也有相應(yīng)的工具支持 JSON 數(shù)據(jù)的編解碼操作

返回json字符串統(tǒng)一解決

在類上直接使用 @RestController ,這樣子,里面所有的方法都只會返回 json 字符串了,

不用再每一個都添加@ResponseBody !我們在前后端分離開發(fā)中,一般都使用 @RestController ,十分便捷!

例如:

@RestController
public class UserController {
//produces:指定響應(yīng)體返回類型和編碼
@RequestMapping(value = "/json1")
public String json1() throws JsonProcessingException {
//創(chuàng)建一個jackson的對象映射器,用來解析數(shù)據(jù)
ObjectMapper mapper = new ObjectMapper();
//創(chuàng)建一個對象
User user = new User("秦疆1號", 3, "男");
//將我們的對象解析成為json格式
String str = mapper.writeValueAsString(user);
//由于@ResponseBody注解,這里會將str轉(zhuǎn)成json格式返回;十分方便
return str;
}
}

FastJson

fastjson.jar是阿里開發(fā)的一款專門用于Java開發(fā)的包,可以方便的實(shí)現(xiàn)json對象與JavaBean 對象的轉(zhuǎn)換,實(shí)現(xiàn)JavaBean對象與json字符串的轉(zhuǎn)換,實(shí)現(xiàn)json對象與json字符串的轉(zhuǎn)換。 實(shí)現(xiàn)json的轉(zhuǎn)換方法很多,最后的實(shí)現(xiàn)結(jié)果都是一樣的。

fastjson 的 pom依賴!

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>

fastjson 三個主要的類:

JSONObject 代表 json 對象

  • JSONObject實(shí)現(xiàn)了Map接口, 猜想 JSONObject底層操作是由Map實(shí)現(xiàn)的。
  • JSONObject對應(yīng)json對象,通過各種形式的get()方法可以獲取json對象中的數(shù)據(jù),也可以利用諸如size(),isEmpty()等方法獲取"鍵:值"對的個數(shù)和判斷是否為空。其本質(zhì)是通過實(shí)現(xiàn)Map接口并調(diào)用接口中的方法完成的。

JSONArray 代表 json 對象數(shù)組

  • 內(nèi)部是有List接口中的方法來完成操作的。

JSON 代表 JSONObject  JSONArray 的轉(zhuǎn)化

  • JSON類源碼分析與使用
  • 仔細(xì)觀察這些方法,主要是實(shí)現(xiàn)json對象,json對象數(shù)組,javabean對象,json字符串之間的相互轉(zhuǎn)化。

總結(jié) 

到此這篇關(guān)于SpringMVC中Json數(shù)據(jù)交互處理的文章就介紹到這了,更多相關(guān)SpringMVC Json數(shù)據(jù)交互處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis中的test語句失效處理方式

    mybatis中的test語句失效處理方式

    這篇文章主要介紹了mybatis中的test語句失效處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Springboot實(shí)現(xiàn)郵箱驗(yàn)證碼注冊與修改密碼及登錄功能詳解流程

    Springboot實(shí)現(xiàn)郵箱驗(yàn)證碼注冊與修改密碼及登錄功能詳解流程

    驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動化的場景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼
    2022-11-11
  • protobuf簡介及使用流程

    protobuf簡介及使用流程

    本文介紹了Protocol Buffers(protobuf)的數(shù)據(jù)結(jié)構(gòu)序列化和反序列化框架,包括其特點(diǎn)、使用流程和快速上手,通過一個簡單的通訊錄示例,展示了如何創(chuàng)建.proto文件、添加注釋、編寫消息定義、編譯.proto文件以及進(jìn)行序列化和反序列化操作,感興趣的朋友一起看看吧
    2025-02-02
  • Java判斷兩個集合是否具有交集及如何獲得交集詳解

    Java判斷兩個集合是否具有交集及如何獲得交集詳解

    這篇文章主要給大家介紹了關(guān)于Java判斷兩個集合是否具有交集及如何獲得交集的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Java URL自定義私有網(wǎng)絡(luò)協(xié)議

    Java URL自定義私有網(wǎng)絡(luò)協(xié)議

    URI與URL的區(qū)別 一.先來序言一段 二.協(xié)議的自定義的理解 三.自定義協(xié)議與URL的關(guān)系 四.URL自定義私有協(xié)議實(shí)戰(zhàn) 五.后話,自定義mineType解析器
    2016-04-04
  • IDEA中將SpringBoot項(xiàng)目提交到git倉庫的方法步驟

    IDEA中將SpringBoot項(xiàng)目提交到git倉庫的方法步驟

    本文主要介紹了IDEA中將SpringBoot項(xiàng)目提交到git倉庫的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • springboot vue 跨域問題的解決

    springboot vue 跨域問題的解決

    這篇文章主要介紹了springboot vue 跨域問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • SpringBoot處理 CORS 跨域的方法詳解

    SpringBoot處理 CORS 跨域的方法詳解

    Springboot跨域問題,是當(dāng)前主流web開發(fā)人員都繞不開的難題,CORS是一個W3C標(biāo)準(zhǔn),全稱是”跨域資源共享”,本文將給大家詳細(xì)介紹SpringBoot 如何處理 CORS 跨域,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • servlet重定向詳解(八)

    servlet重定向詳解(八)

    這篇文章主要為大家詳細(xì)介紹了servlet重定向的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • java內(nèi)部類原理與用法詳解

    java內(nèi)部類原理與用法詳解

    這篇文章主要介紹了java內(nèi)部類原理與用法,結(jié)合實(shí)例形式分析了Java內(nèi)部類的概念、原理、分類及相關(guān)使用技巧,需要的朋友可以參考下
    2019-05-05

最新評論