精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

5566成人精品视频免费| 亚洲精品福利在线观看| 久青草视频在线播放| 天堂av一区二区三区| 日韩精品三区四区| 欧美裸体xxxx极品少妇| 欧美一区二区三区成人精品| 久久麻豆视频| 午夜精品久久久久久久| 青青草国产精品| 国产黄色片av| 久久一本综合频道| 欧美国产极速在线| 中文字幕伦理片| 草草视频在线一区二区| 欧美日韩一区二区电影| 欧美激情 国产精品| 天堂а√在线资源在线| 97精品久久久午夜一区二区三区| 国产精品男人的天堂| 日本熟妇毛耸耸xxxxxx| 婷婷丁香综合| 中文字幕av一区二区| 国产伦精品一区二区三区精品| 狠狠久久综合| 欧美性xxxx极品hd满灌| 国产小视频免费| 日本不卡视频| 国产片一区二区| 国产亚洲欧美一区二区| 精品免费久久久| 六月丁香婷婷久久| 日韩av色综合| 伊人手机在线视频| 欧美日韩视频| 久操成人在线视频| 五月天婷婷丁香网| 欧美精品一区二区三区中文字幕 | 中文字幕第六页| 福利一区二区免费视频| 色综合天天综合| 亚洲人成无码网站久久99热国产| 国产调教视频在线观看| 中文字幕欧美一区| 亚洲精品高清视频| 国产女人在线视频| 久久精品一区八戒影视| 麻豆亚洲一区| 天天综合网在线观看| 国产91在线观看丝袜| 99三级在线| www.桃色av嫩草.com| 精品亚洲成a人在线观看| 国产日本欧美在线观看| 一二三四区在线| 久久精品99久久久| 国产日韩亚洲欧美| 国产一区二区三区视频免费观看| 免费观看在线色综合| 国产精品嫩草影院一区二区| 瑟瑟视频在线免费观看| 日本vs亚洲vs韩国一区三区 | www久久精品| 美乳视频一区二区| 国产午夜视频在线观看| 中文字幕精品在线不卡| 一区精品视频| 怡红院红怡院欧美aⅴ怡春院| 亚洲青青青在线视频| 91麻豆天美传媒在线| 日本三级在线观看网站| 亚洲妇女屁股眼交7| 国产在线青青草| 国产精品亚洲一区二区三区在线观看| 欧美在线免费观看亚洲| 色婷婷.com| 奇米一区二区| 日韩成人中文字幕| 国产毛片欧美毛片久久久| 四季av一区二区凹凸精品| 欧美精品一区在线播放| 国产精品1234区| 久久综合亚州| 亚洲精品欧美日韩专区| 蜜桃av中文字幕| 国产色爱av资源综合区| 国产精品亚洲天堂| 91桃色在线| 欧美最猛黑人xxxxx猛交| 福利视频999| 麻豆精品av| 在线看国产精品| 久久久久亚洲av无码专区| 亚洲一区二区三区四区五区午夜 | 日本中文字幕在线观看视频| 久久精品av麻豆的观看方式| 国产精品国产精品| 国产精品免费播放| 亚洲一区二区三区爽爽爽爽爽 | 久久视频免费看| 鲁大师影院一区二区三区| 成人免费网站在线| 四虎影院在线播放| 亚洲天堂福利av| 日韩av资源在线| 国产精品免费精品自在线观看| 日韩av一区二区在线观看| 国产在视频线精品视频| 一本久久知道综合久久| 91精品久久久久久久久久另类| 天堂中文在线官网| 国产精品成人在线观看| 欧美精品一区免费| 91免费精品国偷自产在线在线| 色婷婷综合久久久久| 久久艹免费视频| 国产成人在线电影| 亚洲欧洲三级| 欧美人与性动交xxⅹxx| 欧美精品一区二区三区很污很色的| 人妻无码一区二区三区免费| 噜噜噜91成人网| 国外成人在线视频网站| 成人免费看片| 欧美精品一级二级| 欧美激情亚洲色图| 国产美女一区| 久久久久久99| 俄罗斯一级**毛片在线播放| 欧美精品久久天天躁| 免费网站在线高清观看| 媚黑女一区二区| 国产久一道中文一区| 2024最新电影在线免费观看| 欧美日韩久久久一区| 日韩一区二区a片免费观看| 亚洲欧美网站| 久久精品magnetxturnbtih| 超碰在线网站| 亚洲白虎美女被爆操| 久操免费在线视频| 国产成a人亚洲| 狠狠精品干练久久久无码中文字幕 | 国产视频手机在线观看| 日韩一区在线免费观看| 奇米影视四色在线| 日韩在线精品| 国产美女精品视频免费观看| 77777影视视频在线观看| 在线观看区一区二| 女人十八毛片嫩草av| 秋霞午夜av一区二区三区| 日本一区二区在线视频观看| 日本.亚洲电影| 中文字幕日韩在线观看| 在线观看免费视频一区| 国产精品久久久久久久第一福利| 亚洲欧美视频二区| 99精品在线观看| 91香蕉电影院| 欧美精品videossex少妇| 亚洲第一色在线| 午夜精品久久久久久久久久久久久蜜桃| 99久久久精品| 欧美三级午夜理伦三级| 久久最新网址| 国产中文字幕亚洲| 1区2区3区在线视频| 亚洲成人精品在线| 久久国产视频精品| 国产精品每日更新| 永久看看免费大片| 日韩视频久久| 亚洲高清视频在线观看| 精品91福利视频| 国产+人+亚洲| 成人午夜电影在线观看| 5月丁香婷婷综合| 日本天堂在线视频| 国产欧美精品一区二区三区四区| 香港日本韩国三级网站| 欧美日韩三区| 青青影院一区二区三区四区| 国产精品蜜月aⅴ在线| 欧美另类极品videosbestfree| 少妇一级淫片免费看| 欧美亚洲高清一区二区三区不卡| 久久精品一区二区三区四区五区| 国产不卡视频在线观看| 成人黄色一区二区| 欧美特黄一区| 日本在线免费观看一区| 日本成人精品| 国产999精品久久久影片官网| 黄色片网站在线| 亚洲免费视频观看| 国产特级黄色片| 日韩欧美中文在线| 国产乱国产乱老熟300| 久久久91精品国产一区二区三区| 亚洲国产综合av| 日韩中文字幕1| 九九热只有这里有精品| 欧美激情国产在线| 久久久久无码国产精品一区| 成人永久在线| 日韩av不卡在线| 黑人精品视频| 久久亚洲国产精品成人av秋霞| 头脑特工队2在线播放| 91精品免费观看| 中文文字幕一区二区三三| 婷婷成人激情在线网| 日韩影院一区二区| 中文字幕精品综合| 性欧美丰满熟妇xxxx性仙踪林| 国产精品综合视频| 亚洲欧美日韩三级| 日韩电影在线一区二区| 少妇高潮喷水在线观看| 欧美午夜精品| av磁力番号网| 国产精品videosex性欧美| 欧美一区二区在线| 蜜桃一区av| 国产福利久久精品| 免费观看亚洲视频大全| 国产欧美日韩中文| 日韩一区二区三区免费| 国产91在线播放精品91| 成人观看网址| 97在线视频免费看| av丝袜在线| 欧美激情视频在线免费观看 欧美视频免费一 | 精品国产拍在线观看| 国产区视频在线播放| 国产视频精品久久久| 天天干天天操av| 亚洲成人久久一区| 人妻精品一区一区三区蜜桃91| 日韩一区二区免费在线电影| 国产美女www爽爽爽视频| 欧美三级三级三级| 一级黄色大毛片| 欧美日韩一区二区欧美激情| 影音先锋黄色网址| 欧美视频一区二| 这里只有精品9| 欧美三级日本三级少妇99| 在线观看国产精品视频| 欧美日韩一区二区在线观看视频| 中文字幕一区二区三区四区视频 | 国产成人三级在线播放| 欧美一区二区三区免费在线看| 97久久人国产精品婷婷| 欧美高清激情brazzers| 国产日韩在线观看一区| 欧美大片一区二区三区| 蜜桃av中文字幕| 亚洲免费电影一区| av网站在线免费播放| 色噜噜狠狠狠综合曰曰曰88av | 26uuu日韩精品一区二区| 成人免费网站视频| 国产精品免费在线免费| 99久热在线精品视频观看| 不卡的av一区| 日韩有码中文字幕在线| 先锋影音欧美| 一区二区国产在线| 国产91xxx| 日本中文一区二区三区| 日韩视频在线观看一区二区三区| 国产精品一色哟哟哟| 中文字幕在线播放视频| 国产欧美日韩在线观看| 丰满少妇被猛烈进入一区二区| 亚洲午夜视频在线观看| 日本a级c片免费看三区| 欧美日产国产精品| 国产91久久久| 中文字幕精品视频| 精品精品导航| 国产精品久久久久久av福利软件| 99tv成人影院| 蜜桃传媒视频麻豆第一区免费观看| 成人免费看片39| www.在线观看av| 日韩精品一二区| 麻豆短视频在线观看| 日本一区二区三区四区| 精品爆乳一区二区三区无码av| 欧美性精品220| 国内精品偷拍视频| 亚洲人线精品午夜| 欧美6一10sex性hd| 国产精品中文久久久久久久| 国产精品主播在线观看| 亚洲午夜精品一区二区三区| 一本综合久久| 一本之道在线视频| 久久美女艺术照精彩视频福利播放| 欧美大片xxxx| 一本大道久久a久久精品综合| www.国产欧美| 丝袜美腿精品国产二区| 欧产日产国产精品视频| 91香蕉嫩草影院入口| 免费黄色成人| 无码粉嫩虎白一线天在线观看| 美女在线观看视频一区二区| 精品人妻一区二区免费视频| 亚洲精品免费在线| 88av在线视频| 中日韩美女免费视频网址在线观看 | 欧美图片自拍偷拍| 国产精品久久网站| 日韩国产成人在线| 亚洲毛片一区二区| 国产免费拔擦拔擦8x高清在线人| 成人黄色短视频在线观看| 国产不卡一区| 欧美a在线视频| 成人aa视频在线观看| 久久久久久久久久久久久久久久久 | 久久久精品综合| 色婷婷在线观看视频| 欧美精品一区二区在线观看| 羞羞视频在线观看免费| 成人做爰www免费看视频网站| 精品美女久久久| 成人中文字幕av| 国产欧美一区二区在线观看| 天天操夜夜操视频| 日韩精品极品在线观看播放免费视频| 欧美另类tv| 国产伦一区二区三区色一情| 国产精品hd| 国产精品19p| 亚洲一区在线电影| 少妇喷水在线观看| 91精品国产自产91精品| 欧美重口另类| 国产主播在线看| 91日韩在线专区| 中文字幕在线观看视频免费| 亚洲欧洲中文天堂| 小明成人免费视频一区| 亚洲欧洲一二三| 国产一区日韩二区欧美三区| 午夜精品福利在线视频| 日韩一区二区精品葵司在线| caoporn免费在线视频| 不卡的av一区| 国产亚洲午夜| 亚洲av无码国产精品麻豆天美| 欧美性生活久久| 日日夜夜精品一区| 亚洲影院色无极综合| 亚洲高清不卡| 一本色道久久综合亚洲精品图片| 色婷婷av一区二区三区软件| 精品视频一二三| 成人午夜在线观看| 尤物网精品视频| 在线观看福利片| 欧美日韩国产高清一区二区| av片在线观看永久免费| 成人黄视频免费| 久久久久国产精品一区二区| 成人精品一二三区| 91精品国产综合久久精品图片| 日韩精品亚洲人成在线观看| 精品一区二区国产| 美女看a上一区| 青娱乐在线视频免费观看| 亚洲国产精品久久久久| 日本精品网站| 美女av免费观看| 久久久久久久久久久久久夜| 国产美女精品视频国产| 97视频在线观看亚洲| 成人综合一区| 在线看黄色的网站| 欧美三级乱人伦电影| 波多一区二区| 日韩精品久久久毛片一区二区| 国产在线一区二区综合免费视频| 亚洲精品77777| 日韩综合视频在线观看| 美国成人xxx| 在线视频观看一区二区| 欧美丝袜美女中出在线| 国产素人视频在线观看| 欧美日韩国产高清视频| 国产精品一区2区| 中文字幕第99页| 91精品国产色综合| 欧美大片专区| а天堂中文在线资源|