欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go json omitempty如何實現(xiàn)可選屬性

 更新時間:2024年09月17日 09:38:03   作者:wecode66  
在Go語言中,使用`omitempty`可以幫助我們在進行JSON序列化和反序列化時,忽略結構體中的零值或空值,本文介紹了如何通過將字段類型改為指針類型,并在結構體的JSON標簽中添加`omitempty`來實現(xiàn)這一功能,例如,將float32修改為*float32

Go json omitempty實現(xiàn)可選屬性

有以下 json 字符串

{
	"width":256,
	"height":256,
	"size":1024
	"url":"wecode.fun/bucket/photo/a.jpg",
	"type":"JPG"
}

對應 go 的結構體

type MediaSummary struct {
	Width    int      `json:"width"`
	Height   int      `json:"height"`
	Size     int      `json:"size"`
	URL      string   `json:"url"`
	Type     string   `json:"type"`
	Duration float32 `json:"duration"` 
}

反序列化后,得到的 json 結構是

{
	"width":256,
	"height":256,
	"size":1024
	"url":"wecode.fun/bucket/photo/a.jpg",
	"type":"JPG",
	"duration":0.0
}

這里的 “duration”:0.0 并不是我們需要的。

要去掉這個,可以借助 omitempty 屬性。

即:

type MediaSummary struct {
	Width    int      `json:"width"`
	Height   int      `json:"height"`
	Size     int      `json:"size"`
	URL      string   `json:"url"`
	Type     string   `json:"type"`
	Duration *float32 `json:"duration,omitempty"` 
}

注意,上述有定義2個改動:

  • 1、duration 添加了 omitempty
  • 2、float32 修改為 指針類型 *float32

這樣做的原因可以參考鏈接:

Golang 的 “omitempty” 關鍵字略解

上述修改后,反序列化的結果是:

{
	"width":256,
	"height":256,
	"size":1024
	"url":"wecode.fun/bucket/photo/a.jpg",
	"type":"JPG"
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Golang使用Gin處理下載文件請求返回

    Golang使用Gin處理下載文件請求返回

    在Go語言中,使用Gin框架實現(xiàn)文件下載功能相對簡單,本文給大家展示一個簡單的示例,演示如何使用Gin來處理文件下載請求,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • 解決go獲取文件md5值不正確的問題

    解決go獲取文件md5值不正確的問題

    本文主要介紹了解決go獲取文件md5值不正確的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 淺談Go語言的高效編碼細節(jié)

    淺談Go語言的高效編碼細節(jié)

    這篇文章主要介紹了淺談Go語言的高效編碼細節(jié),我們都知道golang是天生的高并發(fā),高效的編譯型語言,可我們也都可知道,工具再好,用法不對,全都白費,我們來舉2個常用路徑來感受一下
    2023-01-01
  • Go語言模型:string的底層數(shù)據(jù)結構與高效操作詳解

    Go語言模型:string的底層數(shù)據(jù)結構與高效操作詳解

    這篇文章主要介紹了Go語言模型:string的底層數(shù)據(jù)結構與高效操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言并發(fā)之context標準庫的使用詳解

    Go語言并發(fā)之context標準庫的使用詳解

    Context的出現(xiàn)是為了解決在大型應用程序中的并發(fā)環(huán)境下,協(xié)調和管理多個goroutine之間的通信、超時和取消操作的問題,本文就來和大家簡單聊聊它的具體用法,希望對大家有所幫助
    2023-06-06
  • 詳解golang中Context超時控制與原理

    詳解golang中Context超時控制與原理

    Context本身的含義是上下文,我們可以理解為它內部攜帶了超時信息、退出信號,以及其他一些上下文相關的值,本文給大家詳細介紹了golang中Context超時控制與原理,文中有相關的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • 淺談一下前端http與https有什么區(qū)別

    淺談一下前端http與https有什么區(qū)別

    這篇文章主要介紹了淺談一下前端http與https有什么區(qū)別,現(xiàn)今大部分的網(wǎng)站都已經(jīng)使用了 https 協(xié)議,那么https對比http協(xié)議有哪些不同呢,需要的朋友可以參考下
    2023-04-04
  • 線上golang grpc服務資源泄露問題排查

    線上golang grpc服務資源泄露問題排查

    這篇文章主要介紹了線上golang grpc服務資源泄露問題排查,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 一文詳解Go Http Server原理

    一文詳解Go Http Server原理

    這篇文章主要為大家介紹了Go Http Server原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 使用Go?http重試請求的示例

    使用Go?http重試請求的示例

    開發(fā)中對于http請求是經(jīng)常遇到,一般可能網(wǎng)絡延遲或接口返回超時,這篇文章主要介紹了使用Go?http重試請求的示例,需要的朋友可以參考下
    2022-08-08

最新評論