go語言使用第三方包 json化結(jié)構(gòu)體操作示例
本文實(shí)例講述了go語言使用第三方包 json化結(jié)構(gòu)體操作。分享給大家供大家參考,具體如下:
前提條件:安裝好操作系統(tǒng)對應(yīng)的git
go get -u github.com/pquerna/ffjson
-u參數(shù):如果本地已經(jīng)存在該包,則強(qiáng)制更新。
1、既然是把結(jié)構(gòu)體轉(zhuǎn)為json字符串,那么先來定義一個(gè)結(jié)構(gòu)體
type NewsModel struct {
Id int
Title string
}
2、且看ffjson這包用什么方法來把結(jié)構(gòu)體轉(zhuǎn)為json字符串
news := NewsModel{110,"hello"}
res,err := ffjson.Marshal(news)
if err != nil {
fmt.Println("格式化錯(cuò)誤")
fmt.Println(err.Error())
return
}
// 得到是字節(jié)數(shù)組,所以還有轉(zhuǎn)為string
fmt.Println(string(res))
}
打?。?/p>
{"Id":110,"Title":"hello"}
得到了一個(gè)json字符串
3、拓展
為結(jié)構(gòu)體封裝一個(gè)方法ToJson()
專門來干這事
import (
"fmt"
"github.com/pquerna/ffjson/ffjson"
)
// 定義一個(gè)結(jié)構(gòu)體
type NewsModel struct {
Id int
Title string
}
// 定義一個(gè)方法
func (news NewsModel) ToJson() string {
res,err := ffjson.Marshal(news)
if err != nil {
return err.Error()
}
// 得到是字節(jié)數(shù)組,所以還有轉(zhuǎn)為string
return string(res)
}
func main() {
news := NewsModel{110,"hello"}
fmt.Println(news.ToJson()) // 打印:{"Id":110,"Title":"hello"}
}
希望本文所述對大家go語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
Golang?sync.Once實(shí)現(xiàn)單例模式的方法詳解
Go?語言的?sync?包提供了一系列同步原語,其中?sync.Once?就是其中之一。本文將深入探討?sync.Once?的實(shí)現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用?sync.Once,需要的可以參考一下2023-05-05GoLang語法之標(biāo)準(zhǔn)庫fmt.Printf的使用
fmt包實(shí)現(xiàn)了類似C語言printf和scanf的格式化I/O,主要分為向外輸出內(nèi)容和獲取輸入內(nèi)容兩大部分,本文就來介紹一下GoLang語法之標(biāo)準(zhǔn)庫fmt.Printf的使用,感興趣的可以了解下2023-10-10Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式
這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11golang struct, map, json之間的相互轉(zhuǎn)換
本文用于記錄我在 golang 學(xué)習(xí)階段遇到的類型轉(zhuǎn)換問題,針對的是 json 、map、struct 之間相互轉(zhuǎn)換的問題,感興趣的可以了解一下2021-06-06golang踩坑實(shí)戰(zhàn)之channel的正確使用方式
Golang?channel是Go語言中一個(gè)非常重要的特性,除了用來處理并發(fā)編程的任務(wù)中,它還可以用來進(jìn)行消息傳遞和事件通知,這篇文章主要給大家介紹了關(guān)于golang踩坑實(shí)戰(zhàn)之channel的正確使用方式,需要的朋友可以參考下2023-06-06