利用Golang解析json資料的方法示例

2022-09-24 18:27:10 字數 1361 閱讀 3375

使用 golang 解析 json 資料,這種 json 格式是物件的陣列,官方文件有乙個示例:

var jsonblob = byte(`[

,

]`)

type animal struct

var animals animal

err := json.unmarshal(jsonblob, &animals)

if err != nil

fmt.printf("%+v", animals)

它可以把 json 資料的物件解析到對應的結構體中。

如果是一維陣列,帶鍵值對的形式,如:,**如下:

func main() `)

var a map[string]int

json.unmarshal(jsondata, &a)

fmt.printf("%+v\n", a)

}可見鍵值對形式的 json 可以對映到 map 中,或者inte***ce{}.

如果是只有值的形式,如:[「a」,」b」,」c」,」d」,」e」],**如下:

func main()

可見只有值的形式可以對映到乙個 slice 中。

關於 json 資料解析對於型別,在函式注釋中都已有說明:

to unmarshal json into an inte***ce value,unmarshal stores one of these in the inte***ce value:

bool, for json booleans程式設計客棧

float64, for json numbers

string, for json strings

inte***ce{}, for json arrays

map[string]inte***ce{}, for json objects

nil for json null

模擬 php 的json_decode($jsonstring, true)函式

但是,看這種情況,在 php 中,如果用json_decode(『[「a」,」b」,」c」,」d」,」e」]', true)這種第二個引數是 true 的解析 json,可以解析為帶鍵值對的物件的形式:

[0www.cppcns.com=>"a",

1=>"b",

2=>"c",

3=>"d",

4=>"e"

]這種 golang 怎麼做到呢?

func main()

fmt.printf("%+v\n", newdata)

}應該沒有程式設計客棧內建函式,那就這樣手動實現吧。

總結本文標題: 利用golang解析json資料的方法示例

本文位址:

Golang基礎 Json檔案解析成物件陣列

1.導包 需要io包進行檔案的讀取,json包進行格式解析 import io ioutil encoding json fmt strings 3.進行檔案讀取並轉換 主要 func main 將資訊進行轉換成需求物件 models changeinfotoquestionmodel info f...

golang解析json格式 全

專案中客戶端和服務端的互動資料部分為json,因此在服務端就得解析,複雜的json解析起來其實還是挺費勁的。互動的資料類似如下格式 需要將json格式中的w欄位取出來,並且拼成結果串進行展示 從json陣列中獲取ws ws是陣列,陣列元素為object cw是陣列,陣列元素為object w是str...

golang解析json格式 全

專案中客戶端和服務端的互動資料部分為json,因此在服務端就得解析,複雜的json解析起來其實還是挺費勁的。互動的資料類似如下格式 需要將json格式中的w欄位取出來,並且拼成結果串進行展示 從json陣列中獲取ws ws是陣列,陣列元素為object cw是陣列,陣列元素為object w是str...