package main
import (
"fmt"
"encoding/json"
)
type Ticket struct {
From string
To string
}
func (t Ticket) String() string {
return fmt.Sprintf("%s - %s", t.From, t.To)
}
type Passenger struct {
Name string `json:"Name"`
Tkt Ticket `json:"Ticket"`
}
func main() {
p := Passenger{}
p.Name = "John"
p.Tkt.From = "New York"
p.Tkt.To = "Washington"
buf, _ := json.Marshal(p)
fmt.Println(string(buf))
}
이 코드 출력 :JSON 문자열에 String() 메서드가 포함 된 struct를 올바르게 serialize하는 방법은 무엇입니까?
{"Name":"John","Ticket":{"From":"New York","To":"Washington"}}
그러나, json.Marshal()
방법을 사용하여 (쉽게 복잡한 구조체에 대한 친절은), 어떻게 출력과 같이 만들 수 :
{"Name":"John","Ticket":"New York - Washington"}
멋진 솔루션. 고맙습니다. –
덧붙여 말하자면'% s' 대신에'% q'을 사용하면 문자열을 인용 할 것입니다. https://play.golang.org/p/RYhaMM5kpd – Kaedys
@Kaedys 당신은 입력에서 잠재적 인용문을 잊었다는 것을 깨닫게했습니다. 나는'json' 패키지 자체의 사용을 제안하도록 질문을 업데이트했다. – icza