Shembull: Leximi i JSON fajllit me parsim me strukt
1 package main
2
3 import (
4 "encoding/json"
5 "fmt"
6 "io/ioutil"
7 "os"
8 "strconv"
9 )
10
11 type Anetaret struct {
12 Anetaret []Anetari `json:"anetaret"`
13 }
14
15 type Anetari struct {
16 Emri string `json:"emri"`
17 Mosha int `json:"mosha"`
18 Gjinia string `json:"gjinia"`
19 Kontakti Kontakti `json:"kontakti"`
20 }
21
22 type Kontakti struct {
23 Emaili string `json:"emaili"`
24 Telefoni string `json:"telefoni"`
25 }
26
27 func main() {
28 fajlli, err := os.Open("anetaret.json")
29 if err != nil {
30 fmt.Println(err)
31 }
32 defer fajlli.Close()
33
34 teDhenat, _ := ioutil.ReadAll(fajlli)
35 var anetaret Anetaret
36
37 json.Unmarshal(teDhenat, &anetaret)
38 for i := 0; i < len(anetaret.Anetaret); i++ {
39 fmt.Println("Emri: " + anetaret.Anetaret[i].Emri)
40 fmt.Println("Mosha: " + strconv.Itoa(anetaret.Anetaret[i].Mosha))
41 fmt.Println("Gjinia: " + anetaret.Anetaret[i].Gjinia)
42 fmt.Println("Emaili: " + anetaret.Anetaret[i].Kontakti.Emaili)
43 fmt.Println("Telefoni: " + anetaret.Anetaret[i].Kontakti.Telefoni)
44 }
45 }
anetaret.json
1 {
2 "anetaret": [
3 {
4 "emri": "Alban",
5 "mosha": 23,
6 "gjinia": "m",
7 "kontakti": {
8 "emaili": "alban@gmail.com",
9 "telefoni": "049111222"
10 }
11 },
12 {
13 "emri": "Teuta",
14 "mosha": 17,
15 "gjinia": "f",
16 "kontakti": {
17 "emaili": "teuta@gmail.com",
18 "telefoni": "044222333"
19 }
20 }
21 ]
22 }
https://play.golang.org/p/a5H7kzLvC_4
Rezultati:
1 Emri: Alban
2 Mosha: 23
3 Gjinia: m
4 Emaili: alban@gmail.com
5 Telefoni: 049111222
6 Emri: Teuta
7 Mosha: 17
8 Gjinia: f
9 Emaili: teuta@gmail.com
10 Telefoni: 044222333