成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Boot 返回 JSON 數(shù)據(jù),一分鐘搞定!

Backache / 1900人閱讀

摘要:在項(xiàng)目中返回?cái)?shù)據(jù)是常見(jiàn)的交互形式,在中這一切都變得十分簡(jiǎn)單。返回?cái)?shù)據(jù)格式定義定義返回方式在類上面用定義或者在方法上面用定義,表明是在區(qū)域輸出數(shù)據(jù)。返回?cái)?shù)據(jù)棧長(zhǎng)正在拼命寫作中,過(guò)兩天我的公眾號(hào)會(huì)第一時(shí)間分享。

在 WEB 項(xiàng)目中返回 JSON 數(shù)據(jù)是常見(jiàn)的交互形式,在 Spring Boot 中這一切都變得十分簡(jiǎn)單。So easy!!!

你所需具備的基礎(chǔ)

什么是 Spring Boot?

Spring Boot 核心配置文件詳解

Spring Boot 開(kāi)啟的 2 種方式

Spring Boot 自動(dòng)配置原理、實(shí)戰(zhàn)

Spring Boot 2.x 啟動(dòng)全過(guò)程源碼分析

更多請(qǐng)?jiān)贘ava技術(shù)棧微信公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字:boot。

如何返回 JSON 數(shù)據(jù)?

在 Spring Boot 中返回 JSON 數(shù)據(jù)很簡(jiǎn)單,如下幾步。

加入依賴

    org.springframework.boot
    spring-boot-starter-parent
    2.0.4.RELEASE



    org.springframework.boot
    spring-boot-starter-web

除了 Spring Boot 必須自帶的 parent 依賴外,僅僅只需要加入這個(gè) spring-boot-starter-web 包即可,它會(huì)自動(dòng)包含所有 JSON 處理的包,如下圖所示。

這個(gè)插件感謝知識(shí)星球球友的分享,簡(jiǎn)單不錯(cuò),點(diǎn)擊文章底部的閱讀原文,可以加入一起學(xué)習(xí)。

返回 XML 數(shù)據(jù)格式定義
1)定義返回方式

在 Controller 類上面用 @RestController 定義或者在方法上面用 @ResponseBody 定義,表明是在 Body 區(qū)域輸出數(shù)據(jù)。

下面是使用示例:

@RestController
public class JsonTest {

    @GetMapping(value = "/user/{userId}")
    public User getUserInfo(@PathVariable("userId") String userId) {
        User user = new User("Java技術(shù)棧", 18);
        user.setId(Long.valueOf(userId));
        return user;
    }

}
2)自定義輸出格式

上面的方法直接返回對(duì)象,對(duì)象會(huì)自動(dòng)轉(zhuǎn)換為 XML 格式,不過(guò)是默認(rèn)的標(biāo)簽,可以通過(guò)以下標(biāo)簽進(jìn)行自定義 XML 格式。

public class User {

    @JsonProperty("user-name")
    private String userName;

    private Long id;

    private Integer age;

    @JsonIgnore
    private String address;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String memo;
    
    // get set 略
    
}

程序輸出:

{"id":1,"age":18,"user-name":"Java技術(shù)棧"}

上面演示了幾個(gè)常用的注解。

@JsonProperty: 可用來(lái)自定義屬性標(biāo)簽名稱;

@JsonIgnore: 可用來(lái)忽略不想輸出某個(gè)屬性的標(biāo)簽;

@JsonInclude: 可用來(lái)動(dòng)態(tài)包含屬性的標(biāo)簽,如可以不包含為 null 值的屬性;

更多注解可以查看這個(gè)包:

如何手動(dòng)完成對(duì)象 和 Json 的互轉(zhuǎn)?

jackson-databind 包里面有一個(gè) com.fasterxml.jackson.databind.ObjectMapper 類可以完成對(duì)象和 Json 數(shù)據(jù)的互轉(zhuǎn),下面是一個(gè)簡(jiǎn)單的合作示例。

ObjectMapper objectMapper = new ObjectMapper();

String userJsonStr = objectMapper.writeValueAsString(user);

User jsonUser = objectMapper.readValue(userJsonStr, User.class);

更多相關(guān)的使用及原理可以查看這個(gè)包。

好了,Spring Boot 返回 JSON 格式數(shù)據(jù)就是這么簡(jiǎn)單,有什么不懂的可以點(diǎn)擊閱讀原文加入星球和大家一起學(xué)習(xí)討論。

《Spring Boot 返回 XML 數(shù)據(jù)》棧長(zhǎng)正在拼命寫作中,過(guò)兩天我的公眾號(hào)會(huì)第一時(shí)間分享。

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),關(guān)注公眾號(hào)在后臺(tái)回復(fù) "boot" 可獲取更多,轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72688.html

相關(guān)文章

  • Laravel 和 Spring Boot 兩個(gè)框架比較創(chuàng)業(yè)篇(:開(kāi)發(fā)效率)

    摘要:小紅要以最低成本最快速度推出版本,投放市場(chǎng),收集反饋,持續(xù)迭代??偨Y(jié)在技能掌握充足的情況下,個(gè)人感覺(jué)開(kāi)發(fā)效率要略高于。 我個(gè)人是比較不喜歡去正兒八經(jīng)的比較兩個(gè)框架的,這樣沒(méi)有意義,不過(guò)欲善其事先利其器! 技術(shù)是相通的,但是在某個(gè)特定的領(lǐng)域的某個(gè)階段肯定有相對(duì)最適合的一個(gè)工具! 這里比較不是從技術(shù)角度比較,而是從公司技術(shù)選型考慮的,特別是初創(chuàng)的互聯(lián)網(wǎng)創(chuàng)業(yè)公司。沒(méi)辦法,誰(shuí)讓互聯(lián)網(wǎng)公司離不開(kāi)...

    tinna 評(píng)論0 收藏0
  • Laravel 和 Spring Boot 兩個(gè)框架比較創(chuàng)業(yè)篇(:開(kāi)發(fā)效率)

    摘要:小紅要以最低成本最快速度推出版本,投放市場(chǎng),收集反饋,持續(xù)迭代??偨Y(jié)在技能掌握充足的情況下,個(gè)人感覺(jué)開(kāi)發(fā)效率要略高于。 我個(gè)人是比較不喜歡去正兒八經(jīng)的比較兩個(gè)框架的,這樣沒(méi)有意義,不過(guò)欲善其事先利其器! 技術(shù)是相通的,但是在某個(gè)特定的領(lǐng)域的某個(gè)階段肯定有相對(duì)最適合的一個(gè)工具! 這里比較不是從技術(shù)角度比較,而是從公司技術(shù)選型考慮的,特別是初創(chuàng)的互聯(lián)網(wǎng)創(chuàng)業(yè)公司。沒(méi)辦法,誰(shuí)讓互聯(lián)網(wǎng)公司離不開(kāi)...

    zoomdong 評(píng)論0 收藏0
  • Apollo:微服務(wù)架構(gòu)下的配置管理

    摘要:比如使用的時(shí)候指定使用哪個(gè)環(huán)境的配置在微服務(wù)架構(gòu)下,服務(wù)的數(shù)量會(huì)比之前的單體應(yīng)用多,部署的節(jié)點(diǎn)數(shù)量也會(huì)很多。今天主要是講下在中如何對(duì)接進(jìn)行配置管理。 問(wèn)題背景 在實(shí)際工作中,我們的開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境對(duì)應(yīng)的 Mysql 數(shù)據(jù)庫(kù),Redis 這些信息都不一樣,每個(gè)環(huán)境都有對(duì)應(yīng)的一套配置,在 Spring Boot 中我們通常會(huì)編寫多個(gè)配置文件,也就是每個(gè)環(huán)境一個(gè)配置文件。 比如:...

    cloud 評(píng)論0 收藏0
  • Spring 指南(構(gòu)建RESTful Web服務(wù))

    摘要:構(gòu)建服務(wù)本指南將引導(dǎo)你完成使用創(chuàng)建服務(wù)的過(guò)程。接下來(lái),你將創(chuàng)建將為這些問(wèn)候語(yǔ)提供服務(wù)的資源控制器。告訴在包中查找其他組件配置和服務(wù),允許它找到控制器。顯示日志輸出,該服務(wù)應(yīng)在幾秒內(nèi)啟動(dòng)并運(yùn)行。 構(gòu)建RESTful Web服務(wù) 本指南將引導(dǎo)你完成使用Spring創(chuàng)建hello world RESTful Web服務(wù)的過(guò)程。 將要構(gòu)建什么 你將構(gòu)建一個(gè)接受HTTP GET請(qǐng)求的服務(wù): ht...

    yzzz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<