Golang 프로그래밍 언어에서 JSON은 매우 일반적인 데이터 구조입니다. Golang은 JSON 인코딩 및 디코딩 작업을 수행하는 데 사용하기 쉬운 몇 가지 API를 제공합니다. 이 글에서는 JSON을 Golang 객체로 변환하는 방법을 소개합니다. 구체적인 예를 통해 이것이 어떻게 수행되는지 설명하겠습니다.
먼저 Golang에서 인코딩/json 패키지를 사용해야 합니다. 이 패키지는 Golang 객체와 JSON 간 변환 방법을 제공합니다. 그 중 가장 중요한 것은 Marshal 및 Unmarshal 방법입니다. Marshal은 Golang 개체를 JSON 문자열로 인코딩하는 데 사용되는 반면 Unmarshal은 JSON 문자열에서 Golang 개체를 디코딩하는 데 사용됩니다.
구체적인 예를 살펴보겠습니다. JSON에 저장된 사용자 개체를 나타내는 다음 JSON 문자열을 고려하세요.
{ "id": 123, "name": "John Doe", "email": "jdoe@example.com", "phone": "555-1234", "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" } }
Golang을 사용하여 이 JSON을 읽고 이를 User 개체로 변환하는 코드를 작성하겠습니다. User 개체는 다음과 같이 정의됩니다.
type User struct { ID int Name string Email string Phone string Address Address }
Address는 사용자의 거주지 주소를 나타내는 데 사용되는 개체 유형이기도 합니다.
type Address struct { Street string City string State string Zip string }
위 JSON을 User 개체로 변환하는 방법을 살펴보겠습니다. 먼저 Unmarshal 메서드를 사용하여 JSON 문자열을 읽은 다음 이를 Golang 구조로 변환할 수 있습니다.
func decodeUser(jsonStr string) (User, error) { var user User err := json.Unmarshal([]byte(jsonStr), &user) if err != nil { return User{}, err } return user, nil }
다음 메서드를 통해 JSON 문자열을 decodeUser 함수에 매개 변수로 전달하여 User 객체를 얻을 수 있습니다.
jsonStr := `{ "id": 123, "name": "John Doe", "email": "jdoe@example.com", "phone": "555-1234", "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" } }` user, err := decodeUser(jsonStr) if err != nil { fmt.Println("Error decoding JSON: ", err.Error()) } fmt.Printf("User: %+v", user)
위 코드는 다음을 출력해야 합니다.
User: {ID:123 Name:John Doe Email:jdoe@example.com Phone:555-1234 Address:{Street:123 Main St City:Anytown State:CA Zip:12345}}
Golang에서는 JSON을 사용하는 것이 매우 편리하고 사용하기 쉽습니다. JSON 인코딩 및 디코딩을 구현하려면 json 패키지의 일부 API에 익숙해지면 됩니다. 위의 소개를 통해 독자는 Golang이 JSON을 처리하는 방법과 JSON 문자열을 Golang 객체로 변환하는 방법을 이해할 수 있습니다.
위 내용은 golang json을 객체로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!