濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 利用Golang解析json數(shù)據(jù)的方法示例

利用Golang解析json數(shù)據(jù)的方法示例

熱門標(biāo)簽:百度地圖標(biāo)注搜索關(guān)鍵詞 騰訊外呼系統(tǒng)價(jià)格 電銷機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎 ?兓? 成都呼叫中心外呼系統(tǒng)平臺(tái) 最短的地圖標(biāo)注 谷歌便利店地圖標(biāo)注 浙江人工智能外呼管理系統(tǒng) 電梯外呼訪客系統(tǒng)

本文主要給大家介紹的是關(guān)于Golang解析json數(shù)據(jù)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹:

使用 Golang 解析 json 數(shù)據(jù),這種 json 格式是對(duì)象的數(shù)組,官方文檔有一個(gè)示例:

var jsonBlob = []byte(`[ 
 {"Name": "Platypus", "Order": "Monotremata"}, 
 {"Name": "Quoll", "Order": "Dasyuromorphia"} 
]`) 
type Animal struct { 
 Name string 
 Order string 
} 
var animals []Animal 
err := json.Unmarshal(jsonBlob, animals) 
if err != nil { 
 fmt.Println("error:", err) 
} 
fmt.Printf("%+v", animals)

它可以把 json 數(shù)據(jù)的對(duì)象解析到對(duì)應(yīng)的結(jié)構(gòu)體中。

如果是一維數(shù)組,帶鍵值對(duì)的形式,如:{“A”:3,”B”:3,”C”:5,”D”:5},代碼如下:

func main() {
 jsonData := []byte(`{"A":3,"B":3,"C":5,"D":5}`)
 var a map[string]int
 json.Unmarshal(jsonData, a)
 fmt.Printf("%+v\n", a)
}

可見鍵值對(duì)形式的 json 可以映射到 map 中,或者 interface{} .

如果是只有值的形式,如:[“a”,”b”,”c”,”d”,”e”],代碼如下:

func main() {
 jsonData := []byte(`["a","b","c","d","e"]`)
 var a []string
 json.Unmarshal(jsonData, a)
 fmt.Printf("%+v\n", a)
}

可見只有值的形式可以映射到一個(gè) slice 中。

關(guān)于 json 數(shù)據(jù)解析對(duì)于類型,在函數(shù)注釋中都已有說明:

To unmarshal JSON into an interface value,Unmarshal stores one of these in the interface value:
bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

模擬 PHP 的 json_decode($jsonString, true) 函數(shù)

但是,看這種情況,在 PHP 中,如果用 json_decode(‘[“a”,”b”,”c”,”d”,”e”]', true) 這種第二個(gè)參數(shù)是 true 的解析 json,可以解析為帶鍵值對(duì)的對(duì)象的形式:

[
 0=>"a",
 1=>"b",
 2=>"c",
 3=>"d",
 4=>"e"
]

這種 Golang 怎么做到呢?

func main() {
 jsonData := []byte(`["a","b","c","d","e"]`)
 var a []string
 json.Unmarshal(jsonData, a)
 
 newData := make(map[int]string)
 for k, v := range a {
 newData[k] = v
 }
 
 fmt.Printf("%+v\n", newData)
}

應(yīng)該沒有內(nèi)置函數(shù),那就這樣手動(dòng)實(shí)現(xiàn)吧。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者使用Go語言能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • golang使用json格式實(shí)現(xiàn)增刪查改的實(shí)現(xiàn)示例
  • golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法
  • golang結(jié)構(gòu)體與json格式串實(shí)例代碼
  • golang如何修改json文件內(nèi)容的方法示例
  • Golang JSON的進(jìn)階用法實(shí)例講解
  • golang如何自定義json序列化應(yīng)用詳解
  • golang json性能分析詳解
  • golang中json反序列化可能遇到的問題
  • Golang map如何生成有序的json數(shù)據(jù)詳解
  • Golang中使用JSON的一些小技巧分享
  • golang實(shí)現(xiàn)sql結(jié)果集以json格式輸出的方法
  • Golang 如何解析和生成json

標(biāo)簽:瀘州 滄州 泰安 晉中 東營(yíng) 昭通 駐馬店 阿壩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用Golang解析json數(shù)據(jù)的方法示例》,本文關(guān)鍵詞  利用,Golang,解析,json,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用Golang解析json數(shù)據(jù)的方法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用Golang解析json數(shù)據(jù)的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    奉节县| 滨州市| 清苑县| 大方县| 上虞市| 湖口县| 苍南县| 启东市| 泰来县| 平安县| 巧家县| 和田县| 全州县| 从江县| 荥阳市| 桃园县| 军事| 平原县| 大同县| 麻城市| 东至县| 河池市| 吴桥县| 博白县| 昌都县| 印江| 图木舒克市| 托里县| 大洼县| 彩票| 鄯善县| 桃园市| 神农架林区| 太仓市| 彰化市| 色达县| 汾西县| 鹰潭市| 清镇市| 平泉县| 梅河口市|