go언어 JSON 직렬화 (serialize) 유의점 :: The Obligatory Courtesy Smile

go언어 JSON 직렬화 (serialize) 유의점

Posted by 곰도리네
2017.11.16 15:33 Computing&IT/프로그래밍 - golang

JSON 직렬화를 할때 구조체가 JSON 문자열로 변환되어야 하는데 go언어는 이때 유의할 사항이 있습니다.


다름아니라 구조체의 필드명이 대문자로 시작되어야 한다는 점입니다.


이와 관련한 내용을 정리했습니다.


go언어에서 구조체에 대하여 JSON serialization 하는 경우를 가정해 봅시다.


type Book struct {
Id int
Author string
Content string
}


위와 같이 책의 정보를 나타내는 구조체를 JSON 문자열로 변환한 후에 네트워크를 통해 서버에 날리고 싶다고 생각해 봅시다.


JSON 직렬화 대상의 구조체의 필드명 (위의 경우 Id, Author, Content)은 대문자로 시작해야 합니다.


구조체 필드명을 소문자로 시작하면 JSON 문자열에 포함되지 않습니다.


보통은 대문자로 시작하는 필드명은 JSON 키에도 동일하게 직렬화 됩니다만,


JSON 키를 소문자로 시작하고 싶을 때가 있습니다.

이때는 아래와 같이 json 키를 지정해줍니다.



type Book struct {
Id int `json:"id"
Author string `json:"author"
Content string `json:"content"
}

JSON serialization에 관련한 국내문서가 별로 없어서 삽질을 했던게 기억나서 이렇게 공유합니다.




이 댓글을 비밀 댓글로

티스토리 툴바