新聞中心
?gjson?除了能夠靈活解析、檢索未知數(shù)據(jù)結(jié)構(gòu)內(nèi)容,還能夠動態(tài)創(chuàng)建和修改數(shù)據(jù)結(jié)構(gòu)內(nèi)容。

成都創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元南昌縣做網(wǎng)站,已為上家服務(wù),為南昌縣各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
動態(tài)創(chuàng)建
示例1,簡單使用
func main() {
j := gjson.New(nil)
j.Set("name", "John")
j.Set("score", 99.5)
fmt.Printf(
"Name: %s, Score: %v\n",
j.Get("name").String(),
j.Get("score").Float32(),
)
fmt.Println(j.MustToJsonString())
// Output:
// Name: John, Score: 99.5
// {"name":"John","score":99.5}
}
示例2,創(chuàng)建數(shù)組
func main() {
j := gjson.New(nil)
for i := 0; i < 5; i++ {
j.Set(fmt.Sprintf(`%d.id`, i), i)
j.Set(fmt.Sprintf(`%d.name`, i), fmt.Sprintf(`student-%d`, i))
}
fmt.Println(j.MustToJsonString())
// Output:
// [{"id":0,"name":"student-0"},{"id":1,"name":"student-1"},{"id":2,"name":"student-2"},{"id":3,"name":"student-3"},{"id":4,"name":"student-4"}]
}
動態(tài)修改
func main() {
data :=
`{
"users" : {
"count" : 2,
"list" : [
{"name" : "Ming", "score" : 60},
{"name" : "John", "score" : 59}
]
}
}`
if j, err := gjson.DecodeToJson(data); err != nil {
panic(err)
} else {
j.Set("users.list.1.score", 100)
fmt.Println("John Score:", j.Get("users.list.1.score").Float32())
fmt.Println(j.MustToJsonString())
}
// Output:
// John Score: 100
// {"users":{"count":2,"list":[{"name":"Ming","score":60},{"name":"John","score":100}]}}
}?JSON?數(shù)據(jù)通過?gjson?包讀取后,可以通過?Set?方法改變內(nèi)部變量的內(nèi)容,當(dāng)然也可以新增/刪除內(nèi)容,當(dāng)需要刪除內(nèi)容時,設(shè)定的值為?nil?即可。?gjson?包的數(shù)據(jù)運行時修改特性非常強大,在該特性的支持下,各種數(shù)據(jù)結(jié)構(gòu)的編碼/解析顯得異常的靈活方便。
?gjson?除了能夠靈活解析、檢索未知數(shù)據(jù)結(jié)構(gòu)內(nèi)容,還能夠動態(tài)創(chuàng)建和修改數(shù)據(jù)結(jié)構(gòu)內(nèi)容。
動態(tài)創(chuàng)建
示例1,簡單使用
func main() {
j := gjson.New(nil)
j.Set("name", "John")
j.Set("score", 99.5)
fmt.Printf(
"Name: %s, Score: %v\n",
j.Get("name").String(),
j.Get("score").Float32(),
)
fmt.Println(j.MustToJsonString())
// Output:
// Name: John, Score: 99.5
// {"name":"John","score":99.5}
}
示例2,創(chuàng)建數(shù)組
func main() {
j := gjson.New(nil)
for i := 0; i < 5; i++ {
j.Set(fmt.Sprintf(`%d.id`, i), i)
j.Set(fmt.Sprintf(`%d.name`, i), fmt.Sprintf(`student-%d`, i))
}
fmt.Println(j.MustToJsonString())
// Output:
// [{"id":0,"name":"student-0"},{"id":1,"name":"student-1"},{"id":2,"name":"student-2"},{"id":3,"name":"student-3"},{"id":4,"name":"student-4"}]
}
動態(tài)修改
func main() {
data :=
`{
"users" : {
"count" : 2,
"list" : [
{"name" : "Ming", "score" : 60},
{"name" : "John", "score" : 59}
]
}
}`
if j, err := gjson.DecodeToJson(data); err != nil {
panic(err)
} else {
j.Set("users.list.1.score", 100)
fmt.Println("John Score:", j.Get("users.list.1.score").Float32())
fmt.Println(j.MustToJsonString())
}
// Output:
// John Score: 100
// {"users":{"count":2,"list":[{"name":"Ming","score":60},{"name":"John","score":100}]}}
}?JSON?數(shù)據(jù)通過?gjson?包讀取后,可以通過?Set?方法改變內(nèi)部變量的內(nèi)容,當(dāng)然也可以新增/刪除內(nèi)容,當(dāng)需要刪除內(nèi)容時,設(shè)定的值為?nil?即可。?gjson?包的數(shù)據(jù)運行時修改特性非常強大,在該特性的支持下,各種數(shù)據(jù)結(jié)構(gòu)的編碼/解析顯得異常的靈活方便。
網(wǎng)站題目:創(chuàng)新互聯(lián)GoFrame教程:GoFramegjson-動態(tài)創(chuàng)建修改
當(dāng)前URL:http://fisionsoft.com.cn/article/djcopjj.html


咨詢
建站咨詢
