精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

優雅至極!Spring Boot 3.3 中 ObjectMapper 的最佳實踐!

開發 前端
在本文中,我們展示了如何在 Spring Boot 3.3 中配置并優雅地使用 ObjectMapper?,并通過前后端配合實現了一個簡單的 JSON 數據展示示例。通過自定義 ObjectMapper 的配置,我們可以更靈活地處理 JSON 格式數據,使代碼更加簡潔和可維護。

在企業級開發中,數據的傳輸和存儲越來越依賴于 JSON 格式。在前后端分離架構中,后端通常以 JSON 格式響應數據,前端再對這些數據進行處理。而 ObjectMapper 作為 Jackson 框架中的核心組件,是 Java 世界中用于處理 JSON 格式數據的得力工具,它提供了豐富的 API 支持,將 Java 對象與 JSON 之間的相互轉換變得簡潔、高效。

但在實際開發中,很多開發者并沒有充分利用 ObjectMapper 的靈活性和配置能力,導致代碼冗余且難以維護。Spring Boot 通過自動化配置,簡化了 ObjectMapper 的使用,但為了更好地處理復雜場景,我們仍然可以自定義 ObjectMapper 的配置,使其更加靈活和優雅。

本文將詳細介紹 ObjectMapper 的基本功能,并結合代碼示例,展示如何在 SpringBoot 3.3 中通過配置來定制 ObjectMapper,從而更高效地處理 JSON 數據。此外,我們將展示如何通過前端使用 jQuery 來調用返回 JSON 格式數據的接口,并在頁面上進行動態展示。

ObjectMapper 的詳細說明

ObjectMapper 是 Jackson 庫的核心類,它的主要功能是將 Java 對象與 JSON 格式數據進行相互轉換。它支持以下幾種常見的操作:

  1. Java 對象轉換為 JSON: 通過 writeValueAsString 方法,將 Java 對象序列化為 JSON 字符串。
  2. JSON 轉換為 Java 對象: 使用 readValue 方法,將 JSON 字符串反序列化為 Java 對象。
  3. 配置自定義序列化/反序列化行為: ObjectMapper 提供了豐富的配置選項,可以通過注解或全局配置來定制序列化和反序列化過程。例如,可以忽略某些字段、格式化輸出、修改日期格式等。
  4. 處理復雜數據結構: 它還支持復雜的 Java 類型,如泛型、嵌套對象、集合等,能夠靈活地將這些復雜類型與 JSON 數據相互轉換。

運行效果:

圖片圖片

若想獲取項目完整代碼以及其他文章的項目源碼,且在代碼編寫時遇到問題需要咨詢交流,歡迎加入下方的知識星球。

項目環境配置

引入依賴

首先,在 pom.xml 中引入與 Jackson、Thymeleaf、Lombok 相關的依賴:

<?xml versinotallow="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.3.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.icoderoad</groupId>
	<artifactId>objectmapper</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>objectmapper</name>
	<description>Demo project for Spring Boot</description>
	
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		
		<!-- Spring Boot Starter Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Thymeleaf 模板引擎 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- Jackson JSON 處理 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

application.yml 配置文件

ObjectMapper 的默認行為可以通過 application.yml 文件進行配置,例如設置是否美化輸出、是否忽略空字段等:

server:
  port: 8080
  
objectmapper:
  pretty-print: true
  default-property-inclusion: non_null

配置 ObjectMapper

創建配置類

我們可以通過 @ConfigurationProperties 注解來加載配置文件中的參數,并使用 Lombok 來減少冗余代碼。下面是一個簡單的 ObjectMapperConfig 配置類:

package com.icoderoad.objectmapper.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import com.fasterxml.jackson.annotation.JsonInclude;

import lombok.Data;

@Configuration
@ConfigurationProperties(prefix = "objectmapper")
@Data
public class ObjectMapperProperties {
    private boolean prettyPrint;
    private JsonInclude.Include defaultPropertyInclusion;
}

定義 ObjectMapper Bean

接著,我們可以根據上面的配置,定義一個自定義的 ObjectMapper 實例,并注冊為 Spring 的 Bean:

package com.icoderoad.objectmapper.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.fasterxml.jackson.databind.ObjectMapper;

@Configuration
public class JacksonConfig {

    private final ObjectMapperProperties objectMapperProperties;

    public JacksonConfig(ObjectMapperProperties objectMapperProperties) {
        this.objectMapperProperties = objectMapperProperties;
    }

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        // 是否格式化輸出
        if (objectMapperProperties.isPrettyPrint()) {
            objectMapper.writerWithDefaultPrettyPrinter();
        }
        // 配置屬性包含策略
        objectMapper.setSerializationInclusion(objectMapperProperties.getDefaultPropertyInclusion());
        return objectMapper;
    }
}

User 實體類

User 實體類使用 Lombok 簡化代碼:

package com.icoderoad.objectmapper.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
	private String name;
	private int age;
	private String city;
}

控制器層實現

我們將在控制器中使用自定義的 ObjectMapper,并提供一個返回 JSON 格式數據的接口。前端將使用 jQuery 來異步請求該接口并展示數據。

package com.icoderoad.objectmapper.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.icoderoad.objectmapper.entity.User;

@RestController
public class UserController {

    private final ObjectMapper objectMapper;

    public UserController(ObjectMapper objectMapper) {
        this.objectMapper = objectMapper;
    }

    @GetMapping("/api/user")
    public String getUser() throws JsonProcessingException {
        // 創建一個示例用戶對象
        User user = new User("張三", 30, "北京");

        // 將用戶對象轉換為 JSON 字符串
        return objectMapper.writeValueAsString(user);
    }
}

前端頁面展示

我們將使用 Thymeleaf 模板引擎結合 jQuery 和 Bootstrap 來構建一個簡單的用戶頁面,并通過 AJAX 請求展示后端的 JSON 數據。

在 src/main/resources/templates 目錄下創建 index.html 文件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用戶信息</title>
    <link  rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
    <h1 class="mt-5">用戶信息</h1>
    <button id="loadUser" class="btn btn-primary">加載用戶數據</button>
    <pre id="userJson" class="bg-light p-3 mt-3"></pre>
</div>

<script>
    $(document).ready(function () {
        $('#loadUser').click(function () {
            $.ajax({
                url: '/api/user',
                method: 'GET',
                success: function (data) {
                    $('#userJson').text(JSON.stringify(JSON.parse(data), null, 4));
                }
            });
        });
    });
</script>
</body>
</html>

這個頁面包含一個按鈕,點擊后通過 jQuery 的 AJAX 請求從 /api/user 獲取 JSON 數據,并動態展示在頁面上。

總結

在本文中,我們展示了如何在 Spring Boot 3.3 中配置并優雅地使用 ObjectMapper,并通過前后端配合實現了一個簡單的 JSON 數據展示示例。通過自定義 ObjectMapper 的配置,我們可以更靈活地處理 JSON 格式數據,使代碼更加簡潔和可維護。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2024-11-06 11:33:09

2024-10-15 10:38:32

2024-05-13 13:13:13

APISpring程序

2025-09-22 09:31:34

2024-10-16 12:23:55

技巧Spring驗證

2024-03-08 10:50:44

Spring技術應用程序

2024-11-21 14:42:31

2024-11-28 09:43:04

2024-09-27 12:27:31

2023-09-22 10:12:57

2024-09-05 09:35:58

CGLIBSpring動態代理

2017-01-15 14:50:34

Spring Batc實踐

2025-08-26 07:44:57

2024-08-02 09:15:22

Spring捕捉格式

2025-03-11 00:55:00

Spring停機安全

2024-09-29 10:39:48

RSocketWebSocket通信

2025-09-01 08:28:41

2022-06-27 08:16:34

JSON格式序列化

2024-04-18 08:28:06

2025-02-07 09:11:04

JSON對象策略
點贊
收藏

51CTO技術棧公眾號

日韩在线观看成人| 精品动漫一区二区三区| 91久久嫩草影院一区二区| 在线免费观看亚洲视频| 日韩福利视频一区| 欧美日韩一区二区三区四区五区| 三级在线免费观看| 青春草在线观看| 久久99久久久久久久久久久| 久久久久久久一区二区| 亚洲自拍偷拍一区二区| 国产精品一区二区三区四区在线观看 | 中文字幕一区二区在线观看 | 永久免费精品视频| 色视频欧美一区二区三区| 中文字幕第一页亚洲| 四虎精品成人影院观看地址| 国产一区999| 国产999精品视频| 久视频在线观看| 成人系列视频| 亚洲精品在线91| 男男受被啪到高潮自述| 日本在线中文字幕一区二区三区| 亚洲国产成人va在线观看天堂| 亚洲国产欧洲综合997久久| 日韩在线视频第一页| 久久se这里有精品| 日韩女优人人人人射在线视频| 久久中文字幕无码| 亚洲精品97| 一区二区三区在线播放欧美| 中文字幕在线播放视频| 911精品国产| 欧美白人最猛性xxxxx69交| 欧美三级理论片| 中文在线аv在线| 亚洲国产sm捆绑调教视频| 日本黄色播放器| 95在线视频| 国产日韩欧美综合在线| 久久精品国产一区二区三区不卡| 精品免费久久久| 国产一区二区不卡老阿姨| 国产欧美日韩精品丝袜高跟鞋| 国产精品久免费的黄网站| 国产欧美成人| 91国产在线精品| 亚洲国产综合久久| 亚洲黄色高清| 色综合导航网站| 九九视频在线观看| 好吊视频一区二区三区四区| 欧美极品欧美精品欧美视频 | 欧美日韩在线高清| 欧美日韩国产综合视频| 91免费观看在线| 欧美精品一区二区视频| 精品亚洲综合| 中文字幕av资源一区| 午夜一区二区三区| 日本美女高清在线观看免费| 国产精品家庭影院| 国产精品久久成人免费观看| 性欧美video高清bbw| 亚洲国产精品精华液网站| 成年人网站免费视频| 欧产日产国产精品视频 | 欧美巨猛xxxx猛交黑人97人| 欧美黑吊大战白妞| 亚洲二区免费| 日本一区二区在线播放| 中文在线观看av| 欧美 日韩 国产 成人 在线| 久久久久久免费观看| 精品久久亚洲| 日韩一级免费观看| 曰本三级日本三级日本三级| 岛国av一区| 亚洲毛茸茸少妇高潮呻吟| 国产精品无码午夜福利| 999国产精品| 欧美激情伊人电影| 区一区二在线观看| 九九热在线视频观看这里只有精品| 亚洲va电影大全| 天堂a中文在线| 欧美国产乱子伦| 国产亚洲精品久久久久久久| 三级在线看中文字幕完整版| 欧美在线免费观看亚洲| 四虎国产精品永久免费观看视频| 久久精品色综合| 亚洲人成电影在线| 午夜写真片福利电影网| 国产精品综合| 亚洲sss综合天堂久久| 天堂а√在线8种子蜜桃视频 | 欧美拍拍视频| 久久夜色精品一区| 在线视频欧美一区| 国产精品xx| 欧美一级在线免费| 在哪里可以看毛片| 欧美91精品| 国产精品久久久久久久久久免费| 亚洲第一天堂影院| 欧美激情一区二区三区不卡| 久久av综合网| 欧洲美女精品免费观看视频| 亚洲精品美女网站| 美日韩精品免费观看视频| 正在播放国产一区| 人人妻人人藻人人爽欧美一区| 欧美综合另类| 97人人做人人爱| 国产乱淫片视频| 久久久精品综合| www国产免费| 欧美极品在线| 亚洲欧洲日韩国产| 日本少妇裸体做爰| 国产毛片精品国产一区二区三区| 日本精品一区二区| 欧美日韩在线观看首页| 日韩免费高清av| 在线国产99| 荫蒂被男人添免费视频| 麻豆精品99| 欧美精品在线网站| 一级淫片免费看| 国产三级欧美三级| 亚洲国产精品久久久久爰色欲| 亚洲乱码一区| 久久国产精品久久久久久久久久 | 国产chinese精品一区二区| 中文字幕在线观看日本| 在线精品观看国产| 公侵犯人妻一区二区三区| 国产亚洲亚洲| 久久久com| 九色porny丨首页入口在线| 精品国产免费人成在线观看| 国产一二三四在线| 国产91在线|亚洲| 福利在线一区二区| 911亚洲精品| 午夜精品美女自拍福到在线| 风流少妇一区二区三区91| 一区二区高清在线| 又大又长粗又爽又黄少妇视频| 亚洲区综合中文字幕日日| 成人xvideos免费视频| 免费高清完整在线观看| 欧美久久久久久久久久| tube国产麻豆| 国产91精品露脸国语对白| 成品人视频ww入口| 精品少妇一区| 欧美成熟视频| 国产成人综合亚洲| 国产三级在线免费| 欧美日韩精品一区二区在线播放| 天天操天天摸天天舔| 国产一区二区在线观看免费| 国产在线无码精品| 你懂的在线观看一区二区| 秋霞午夜一区二区| www.亚洲.com| 欧美一区二区日韩一区二区| 精品亚洲永久免费| 久久综合九色综合久久久精品综合| 人妻有码中文字幕| 大胆日韩av| 亚洲综合av影视| 鲁鲁在线中文| 中文日韩电影网站| 性生交生活影碟片| 欧美性少妇18aaaa视频| 国产精品综合激情| 国产不卡视频一区| 精品免费国产一区二区| 亚洲精品国产首次亮相| 韩国精品一区二区三区六区色诱| 欧美黄色三级| 欧美美女操人视频| 国产在线视频福利| 欧美一区二区福利视频| 中文字幕第15页| 亚洲日本va午夜在线影院| 黄色正能量网站| 狠狠色综合色综合网络| 99在线精品免费视频| 精品免费av| 国产美女在线精品免费观看| 日本精品网站| 97色在线观看| 黄视频网站在线看| 亚洲欧美日韩精品久久亚洲区| 国产乱码精品一区二区三区精东| 岛国精品视频在线播放| 婷婷伊人五月天| 久久精品水蜜桃av综合天堂| 成年人看片网站| 免费xxxx性欧美18vr| 国产一区二区网| 中文字幕一区二区三区乱码图片| 久久99精品久久久久久三级| 粉嫩一区二区三区在线观看| 日本欧美爱爱爱| 草草影院在线| 欧美成aaa人片在线观看蜜臀| 成人亚洲综合色就1024| 日韩精品分区| 日韩中文在线视频| 日本午夜在线| 亚洲第一中文字幕| 国产视频手机在线| 欧美午夜不卡在线观看免费| 亚洲高清毛片一区二区| 亚洲精品午夜久久久| 免费在线观看a视频| 91亚洲精品久久久蜜桃| 亚洲精品成人无码毛片| 国产综合成人久久大片91| 8x8x最新地址| 麻豆9191精品国产| 狠狠干 狠狠操| 亚洲第一毛片| 欧美日韩视频免费| 中文在线播放一区二区| 一本一道久久a久久精品综合| 蜜桃一区二区三区| 九色91视频| 操欧美女人视频| 国产精品视频免费一区| 亚洲精品高潮| 999精品视频一区二区三区| 亚洲视频资源| 亚洲a成v人在线观看| 97色婷婷成人综合在线观看| 国产啪精品视频网站| 国产精品伊人| 成人写真视频福利网| 亚洲欧美在线人成swag| 国产欧美日韩高清| 91麻豆精品国产综合久久久| 成人精品福利视频| www999久久| 92国产精品久久久久首页 | 精品国产丝袜高跟鞋| 日韩在线小视频| 伊人久久大香线蕉午夜av| 高清亚洲高清| 成人疯狂猛交xxx| 精品国产不卡一区二区| 97视频资源在线观看| 国产香蕉精品| 欧美激情视频一区二区三区| 亚洲另类av| 日本一区二区三区视频在线观看 | 99久久99久久精品| 黄页网站一区| 国产网站免费在线观看| 麻豆成人精品| theporn国产精品| 国产精品一区二区在线观看网站| 无码国产精品一区二区高潮| 成人免费毛片片v| 搡老熟女老女人一区二区| 国产亚洲欧美日韩在线一区| 精品视频第一页| 亚洲激情网站免费观看| 日本在线视频免费| 色婷婷综合五月| 国产乱人乱偷精品视频a人人澡| 日韩一区二区三| 天天在线女人的天堂视频| 中文字幕在线国产精品| 欧洲中文在线| 国产成人在线视频| 国产中文欧美日韩在线| 国产自产精品| 久久高清免费| 日本午夜激情视频| 麻豆91精品视频| 欧美夫妇交换xxx| 国产精品久久久久7777按摩| 日韩免费在线视频观看| 欧美色男人天堂| 韩国av免费在线| 中文字幕欧美日韩在线| 四虎亚洲精品| 色综合色狠狠综合色| 欧洲精品久久久| 日本综合字幕| 91|九色|视频| 国产成人精品免费视| 国内自拍中文字幕| 中文字幕乱码在线播放| 欧美精品情趣视频| 欧美电影h版| 777久久久精品| 亚洲最大综合网| 国产福利不卡视频| 草草地址线路①屁屁影院成人| 国产精品久久看| 欧美激情黑白配| 欧美一区二区性放荡片| 国产精品一二三区视频| 欧美精品成人在线| 欧美天堂一区二区| 久久久影院一区二区三区| 午夜精品国产| 中文字幕成人免费视频| 国产色产综合色产在线视频| 日本少妇xxxx动漫| 欧美一二区视频| 日日夜夜精品一区| 国产成人精品综合| 欧美sss在线视频| 成人免费a级片| 精品一区二区影视| 黄色国产在线播放| 91久久香蕉国产日韩欧美9色| 欧美性猛交 xxxx| 久久99久久久久久久噜噜| 亚洲精品无播放器在线播放| 亚洲成人第一| 日韩精品色哟哟| 黑人巨大精品欧美| 精品日韩视频在线观看| 女人18毛片水真多18精品| 欧美肥老妇视频| 精品一区二区三区四区五区 | 亚洲国产精彩视频| 美日韩丰满少妇在线观看| 四虎精品在线观看| 一区二区日本伦理| 久久国产人妖系列| 91视频免费看片| 欧美日韩一区 二区 三区 久久精品| 日本v片在线免费观看| 欧美亚洲激情在线| 尤物tv在线精品| 青青草原av在线播放| 91麻豆精东视频| 天天操夜夜操视频| 一本大道亚洲视频| 日本精品裸体写真集在线观看| 四虎一区二区| 久久精品国产在热久久| 小泽玛利亚一区| 欧美一级搡bbbb搡bbbb| av在线导航| 国产精品一级久久久| 国产欧美69| www.黄色在线| 欧美日韩成人高清| 在线观看男女av免费网址| av色综合网| 中国女人久久久| 色噜噜日韩精品欧美一区二区| 色综合久久久久| 91社区在线观看播放| 成人信息集中地欧美| 精品二区视频| 在线观看福利片| 欧美日本一区二区三区| 1769免费视频在线观看| 精品国产综合久久| 日韩av不卡一区二区| www日韩在线| 亚洲国产古装精品网站| 国产成人精品一区二三区在线观看| 一本一道久久久a久久久精品91| 欧美97人人模人人爽人人喊视频| 亚洲.国产.中文慕字在线| 成年人视频观看| 国产成人午夜高潮毛片| 国产在线观看免费视频今夜| 国产视频亚洲视频| 日韩欧美专区| 青青草精品视频在线| 国产片一区二区| 国产高清第一页| 国产成人精品综合久久久| 午夜日本精品| 久久美女免费视频| 日韩欧美高清在线| 浪潮色综合久久天堂| 天天做天天躁天天躁| 国产亚洲1区2区3区| 午夜精品久久久久久久第一页按摩| 欧美综合国产精品久久丁香| 中文字幕一区二区精品区| 第一次破处视频| 亚洲成色www8888| 亚洲一区导航| 中文字幕欧美人妻精品一区|