Go

JSON 인코딩

json.Marshal, json.Unmarshal, struct tags, custom marshaling, streaming, RawMessage

20 면접 질문·
Mid-Level
1

Go struct를 JSON으로 인코딩할 수 있는 함수는 무엇입니까?

답변

json.Marshal은 Go struct를 JSON 바이트로 인코딩합니다. 이 함수는 struct tags를 읽어 직렬화를 커스터마이징합니다(이름 변경, 필드 생략). io.Writer로 스트리밍할 때는 json.NewEncoder를 사용하면 메모리에 중간 버퍼를 만들지 않아도 됩니다.

2

JSON을 Go struct로 디코딩할 수 있는 함수는 무엇입니까?

답변

json.Unmarshal은 JSON 바이트를 Go struct로 디코딩합니다. 데이터가 올바르게 기록되려면 대상 struct에 대한 포인터를 전달해야 합니다. io.Reader에서 스트리밍할 때는 전체 JSON을 메모리에 로드하지 않으므로 json.NewDecoder가 더 효율적입니다.

3

직렬화 중에 필드 이름을 변경할 수 있는 JSON struct tag는 무엇입니까?

답변

json:"custom_name" 태그는 JSON 직렬화 중에 필드 이름을 변경할 수 있게 합니다. 예를 들어 UserID 필드를 JSON에서 user_id로 만들 수 있습니다. 명명 규칙을 지키는 데 유용합니다(JSON의 snake_case vs Go의 CamelCase).

4

필드를 직렬화에서 완전히 제외하는 JSON struct tag는 무엇입니까?

5

값이 비어 있을 때 필드를 생략할 수 있는 JSON struct tag는 무엇입니까?

+17 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기