JSON to GO
Go로 JSON 데이터를 다루다 보면 .. map 을 이용해 Unmarshal 등을 해도 상관은 없지만. 이래저래 불편합니다. 그래서 보통은 구조체를 생성해서 처리를 합니다. 이때 JSON 구조가 단순하다면야 직접 struct 를 잡아서 작성하면 되지만 복잡한 구조의 JSON 데이터의 경우 구조체 만드는것도 여간 귀찮은 일이 아니지요..
그럴때 사용하기 좋은 사이트가 있습니다.
JSON
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}위 JSON 데이터는 json.org 의 JSON Example 중 하나입니다. 이런 JSON 데이터를 입력하면.
Go
type Autogenerated struct {
Glossary struct {
Title string `json:"title"`
Glossdiv struct {
Title string `json:"title"`
Glosslist struct {
Glossentry struct {
ID string `json:"ID"`
Sortas string `json:"SortAs"`
Glossterm string `json:"GlossTerm"`
Acronym string `json:"Acronym"`
Abbrev string `json:"Abbrev"`
Glossdef struct {
Para string `json:"para"`
Glossseealso []string `json:"GlossSeeAlso"`
} `json:"GlossDef"`
Glosssee string `json:"GlossSee"`
} `json:"GlossEntry"`
} `json:"GlossList"`
} `json:"GlossDiv"`
} `json:"glossary"`
}이런 Go struct 구조체를 만들어 줍니다. 구조체 이름정도 변경하시고 사용 하시면 되겠습니다.
이 구조체를 가지고 json.Marshal, Unmarshal 등에 사용하시면 되겠습니다.
VSCode 용 플러그인도 따로 있으니 참고바랍니다.
