GoDasturchi
JSON Decoding

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

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