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