Skip to content

Instantly share code, notes, and snippets.

@s4l1h
Created March 8, 2018 17:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s4l1h/f22aebc1739f5437845e84e376aa36e8 to your computer and use it in GitHub Desktop.
Save s4l1h/f22aebc1739f5437845e84e376aa36e8 to your computer and use it in GitHub Desktop.
Golang JSON ve interface kullanımı.(v5)
package main
import (
"encoding/json"
"fmt"
)
// Person object
type Person struct {
FirstName, LastName string // Küçük harf olursa json kütüphanesi erişemeyecek.
Number string `json:"number"` // json field name'i değişebiliriz.
Company Company `json:"-"` // json kütüphanesi için ignore edelim.
}
// Company object
type Company struct {
Name string `json:"name"` // Şirket Adı
Address string // Şirket Adresi
Persons []*Person `json:"persons,omitempty"` // Personeller
}
// AddPerson to Company
func (company *Company) AddPerson(person *Person) {
company.Persons = append(company.Persons, person)
}
func main() {
company := &Company{
Name: "AKM",
Address: "TeknoKent",
}
p := &Person{
FirstName: "A.Kadir",
LastName: "Mutlu",
}
p.Number = "0449444944944"
p.Company = *company
company.AddPerson(p) // Add Person to Company
p2 := &Person{
FirstName: "Mujdat",
LastName: "Cengiz",
}
p2.Number = "0449444944944"
p2.Company = *company
company.AddPerson(p2) // Add Person to Company
result, err := json.Marshal(company)
if err != nil {
panic(err)
}
fmt.Println(string(result))
/*
{
"name":"AKM",
"Address":"TeknoKent",
"persons":[
{
"FirstName":"A.Kadir",
"LastName":"Mutlu",
"number":"0449444944944"
},
{
"FirstName":"Mujdat",
"LastName":"Cengiz",
"number":"0449444944944"
}
]
}
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment