JSON Decoding
JSON dekodlash
Marshal'ning aksi — json.Unmarshal: JSON matnini o'qib, Go struct'iga to'ldiradi ("dekodlash" yoki "parse qilish" deyiladi).
example.go
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
raw := []byte(`{"name":"Zilola","age":19}`)
var u User
err := json.Unmarshal(raw, &u)
if err != nil {
fmt.Println("xato:", err)
return
}
fmt.Println(u.Name, u.Age)
}json.Unmarshal(baytlar, &joy) ga albatta pointer (&u) berish kerak — chunki u struct'ni "joyida" to'ldiradi, xuddi bo'sh formani JSON'dagi qiymatlar bilan to'ldirgandek. Pointer bo'lmasa, Go qayerga yozishni bilmaydi.
>_ Exercise
Berilgan JSON matnini Order struct'iga dekodlang.
- •Order struct'iga mos json tag'lar qo'shing
- •raw JSON'ni json.Unmarshal bilan order o'zgaruvchisiga o'qing
- •order.ID va order.Total qiymatlarini chop eting
Stuck? Reveal a hint to help you.
Hints (0/3)
Key Takeaway
Key Takeaway:
json.Unmarshal JSON matnini struct'ga o'qiydi; unga har doim struct'ning pointer'i (&u) berilishi shart.
NEXT UP
Working with Dynamic JSON
OUTPUT
$ go run main.go
Kodingizni ishga tushiring