新聞中心
?gjson?模塊除了最基礎(chǔ)支持的?JSON?數(shù)據(jù)格式創(chuàng)建?Json?對(duì)象,還支持常用的數(shù)據(jù)格式內(nèi)容創(chuàng)建?Json?對(duì)象。支持的數(shù)據(jù)格式為:?JSON?, ?XML?, ?INI?, ?YAML?, ?TOML?。此外,也支持直接通過?struct?對(duì)象創(chuàng)建?Json?對(duì)象。

我們一直強(qiáng)調(diào)成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)對(duì)于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站建設(shè)公司不一定是大公司,創(chuàng)新互聯(lián)作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。
對(duì)象創(chuàng)建常用?New?和?Load*?方法,更多的方法請(qǐng)查看接口文檔:https://pkg.GO.dev/github.com/gogf/gf/v2/encoding/gjson
使用New方法創(chuàng)建
通過JSON數(shù)據(jù)創(chuàng)建
jsonContent := `{"name":"john", "score":"100"}`
j := gjson.New(jsonContent)
fmt.Println(j.Get("name"))
fmt.Println(j.Get("score"))
// Output:
// john
// 100通過XML數(shù)據(jù)創(chuàng)建
jsonContent := `john 100 `
j := gjson.New(jsonContent)
// Note that there's root node in the XML content.
fmt.Println(j.Get("doc.name"))
fmt.Println(j.Get("doc.score"))
// Output:
// john
// 100通過Strcut對(duì)象創(chuàng)建
type Me struct {
Name string `json:"name"`
Score int `json:"score"`
}
me := Me{
Name: "john",
Score: 100,
}
j := gjson.New(me)
fmt.Println(j.Get("name"))
fmt.Println(j.Get("score"))
// Output:
// john
// 100自定義Struct轉(zhuǎn)換標(biāo)簽
type Me struct {
Name string `tag:"name"`
Score int `tag:"score"`
Title string
}
me := Me{
Name: "john",
Score: 100,
Title: "engineer",
}
// The parameter specifies custom priority tags for struct conversion to map,
// multiple tags joined with char ','.
j := gjson.NewWithTag(me, "tag")
fmt.Println(j.Get("name"))
fmt.Println(j.Get("score"))
fmt.Println(j.Get("Title"))
// Output:
// john
// 100
// engineer 使用Load*方法創(chuàng)建
最常用的是?Load?和?LoadContent?方法,前者通過文件路徑讀取,后者通過給定內(nèi)容創(chuàng)建?Json?對(duì)象。方法內(nèi)部會(huì)自動(dòng)識(shí)別數(shù)據(jù)格式,并自動(dòng)解析轉(zhuǎn)換為?Json?對(duì)象。
通過Load方法創(chuàng)建
- ?
JSON?文件
jsonFilePath := gdebug.TestDataPath("json", "data1.json")
j, _ := gjson.Load(jsonFilePath)
fmt.Println(j.Get("name"))
fmt.Println(j.Get("score"))- ?
XML?文件
jsonFilePath := gdebug.TestDataPath("json", "data1.xml")
j, _ := gjson.Load(jsonFilePath)
fmt.Println(j.Get("doc.name"))
fmt.Println(j.Get("doc.score"))通過LoadContent創(chuàng)建
jsonContent := `{"name":"john", "score":"100"}`
j, _ := gjson.LoadContent(jsonContent)
fmt.Println(j.Get("name"))
fmt.Println(j.Get("score"))
// Output:
// john
// 100 文章標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame gjson-對(duì)象創(chuàng)建
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/cdejgij.html


咨詢
建站咨詢
