本文實(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)體
復(fù)制代碼 代碼如下:
// 定義一個(gè)結(jié)構(gòu)體
type NewsModel struct {
Id int
Title string
}
2、且看ffjson這包用什么方法來(lái)把結(jié)構(gòu)體轉(zhuǎn)為json字符串
復(fù)制代碼 代碼如下:
func main() {
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()
專門來(lái)干這事
復(fù)制代碼 代碼如下:
package main
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ì)有所幫助。
您可能感興趣的文章:- Go語(yǔ)言之結(jié)構(gòu)體與方法
- Go語(yǔ)言基礎(chǔ)語(yǔ)法之結(jié)構(gòu)體及方法詳解
- go語(yǔ)言通過(guò)反射創(chuàng)建結(jié)構(gòu)體、賦值、并調(diào)用對(duì)應(yīng)的操作
- Go語(yǔ)言-為什么返回值為接口類型,卻返回結(jié)構(gòu)體
- 關(guān)于Go 空結(jié)構(gòu)體的 3 種使用場(chǎng)景