go語(yǔ)言使用第三方包 json化結(jié)構(gòu)體操作示例
本文實(shí)例講述了go語(yǔ)言使用第三方包 json化結(jié)構(gòu)體操作。分享給大家供大家參考,具體如下:
前提條件:安裝好操作系統(tǒng)對(duì)應(yīng)的git
go get -u github.com/pquerna/ffjson
-u參數(shù):如果本地已經(jīng)存在該包,則強(qiáng)制更新。
1、既然是把結(jié)構(gòu)體轉(zhuǎn)為json字符串,那么先來(lái)定義一個(gè)結(jié)構(gòu)體
type NewsModel struct {
Id int
Title string
}
2、且看ffjson這包用什么方法來(lái)把結(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))
}
打印:
{"Id":110,"Title":"hello"}
得到了一個(gè)json字符串
3、拓展
為結(jié)構(gòu)體封裝一個(gè)方法ToJson()
專(zhuān)門(mén)來(lái)干這事
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"}
}
希望本文所述對(duì)大家go語(yǔ)言程序設(shè)計(jì)有所幫助。
相關(guān)文章
golang?手寫(xiě)貪吃蛇示例實(shí)現(xiàn)
這篇文章主要為大家介紹了golang?手寫(xiě)貪吃蛇示例實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Golang?sync.Once實(shí)現(xiàn)單例模式的方法詳解
Go?語(yǔ)言的?sync?包提供了一系列同步原語(yǔ),其中?sync.Once?就是其中之一。本文將深入探討?sync.Once?的實(shí)現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用?sync.Once,需要的可以參考一下2023-05-05Go語(yǔ)言七篇入門(mén)教程三函數(shù)方法及接口
這篇文章主要為大家介紹了Go語(yǔ)言的函數(shù)方法及接口的示例詳解,本文是Go語(yǔ)言七篇入門(mén)系列文章,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11對(duì)Golang中的runtime.Caller使用說(shuō)明
這篇文章主要介紹了對(duì)Golang中的runtime.Caller使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12GoLang語(yǔ)法之標(biāo)準(zhǔn)庫(kù)fmt.Printf的使用
fmt包實(shí)現(xiàn)了類(lèi)似C語(yǔ)言printf和scanf的格式化I/O,主要分為向外輸出內(nèi)容和獲取輸入內(nèi)容兩大部分,本文就來(lái)介紹一下GoLang語(yǔ)法之標(biāo)準(zhǔn)庫(kù)fmt.Printf的使用,感興趣的可以了解下2023-10-10Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式
這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11在Go語(yǔ)言程序中使用gojson來(lái)解析JSON格式文件
這篇文章主要介紹了在Go語(yǔ)言程序中使用gojson來(lái)解析JSON格式文件的方法,Go是由Google開(kāi)發(fā)的高人氣新興編程語(yǔ)言,需要的朋友可以參考下2015-10-10Go語(yǔ)言開(kāi)發(fā)k8s之Deployment操作解析
這篇文章主要為大家介紹了Go語(yǔ)言開(kāi)發(fā)k8s之Deployment操作解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06golang struct, map, json之間的相互轉(zhuǎn)換
本文用于記錄我在 golang 學(xué)習(xí)階段遇到的類(lèi)型轉(zhuǎn)換問(wèn)題,針對(duì)的是 json 、map、struct 之間相互轉(zhuǎn)換的問(wèn)題,感興趣的可以了解一下2021-06-06golang踩坑實(shí)戰(zhàn)之channel的正確使用方式
Golang?channel是Go語(yǔ)言中一個(gè)非常重要的特性,除了用來(lái)處理并發(fā)編程的任務(wù)中,它還可以用來(lái)進(jìn)行消息傳遞和事件通知,這篇文章主要給大家介紹了關(guān)于golang踩坑實(shí)戰(zhàn)之channel的正確使用方式,需要的朋友可以參考下2023-06-06