[英]Json unmarshal type model in golang
我有一個RESTful服務,返回的響應類似於以下所示:
"Basket" : {
"Count": 1,
"Fruits": {[
{
"Name":"Mango",
"Season":"Summer"
},
{
"Name":"Fig",
"Season":"Winter"}
]}
}
我正在嘗試創建Go lang模型以解組內容。 以下是我嘗試過的代碼:
type Response struct {
Count int
Fruits []Fruit
}
type Fruit struct {
Name string
Season string
}
但是,當我在測試代碼中封送Response對象時,看不到類似的json。 ( https://play.golang.org/p/EGKqfbwFvW )編組數據始終顯示為:
{
"Count":100,
"Fruits":[
{"Name":"Mango","Season":"Summer"},
{"Name":"Fig","Season":"Winter"}
]
}
注意,結果在原始json中顯示為數組[]而不是{[]} 。 如何為此響應在golang中建模結構?
我將在“響應”(Response)中將“購物籃”(Baskets)構造為一個結構,創建一個“ BasketsData”結構,並為其賦予所有標簽。
type Fruit struct {
Name string `json:"Name"`
Season string `json:"Season"`
}
type BasketData struct {
Count int `json:"Count"`
Fruits []Fruit `json:"Fruits"`
}
type Response struct {
Basket BasketData `json:"Basket"`
}
這樣,在編組時將獲得頂級JSON響應。
fruitmania := []Fruit{{Name: "Mango", Season: "Summer"},
{Name: "Fig", Season: "Winter"}}
basket := Response{BasketData{Count: 100, Fruits: fruitmania}}
b, _ := json.Marshal(basket)
fmt.Println(string(b))
checkit-checkout: https : //play.golang.org/p/TuUwBLs_Ql
您的模型是完全正確和有效的,但JSON對象不是。 "Fruits"
應該是鍵值對,或者應該用[]
而不是{}
包裹,則沒有名稱。
JSON obj的格式應如下所示:
{
"Basket" : {
"Count": 1,
"Fruits": [
{
"Name":"Mango",
"Season":"Summer"
},
{
"Name":"Fig",
"Season":"Winter"
}
]
}
}
而且實際上無效的json不起作用https://play.golang.org/p/yoW7t4NfI7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.