Golang에서 JSON 직렬화 및 역직렬화를 구현하는 방법
JSON(JavaScript Object Notation)은 구조화된 데이터를 텍스트 형식으로 나타내는 일반적으로 사용되는 데이터 교환 형식입니다. Golang에서는 내장된 인코딩/json 패키지를 사용하여 JSON 직렬화 및 역직렬화 작업을 구현할 수 있습니다.
1. JSON 직렬화
JSON 직렬화는 Go 언어의 데이터 유형을 JSON 형식에 맞는 문자열로 변환하는 것을 의미합니다. Golang에서는 Marshal 함수를 통해 JSON 직렬화를 구현할 수 있습니다.
다음은 간단한 예입니다.
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { person := Person{ Name: "小明", Age: 20, } jsonBytes, err := json.Marshal(person) if err != nil { fmt.Println("JSON序列化失败:", err) return } jsonString := string(jsonBytes) fmt.Println("JSON序列化结果:", jsonString) }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
JSON序列化结果: {"name":"小明","age":20}
위 예에서는 Person 구조를 정의하고 Marshal 함수를 사용하여 Person 구조 인스턴스 person을 JSON 문자열로 직렬화합니다. . 구조 필드의 json
태그를 설정하면 JSON에서 필드 이름을 지정할 수 있습니다.
2. JSON 역직렬화
JSON 역직렬화는 JSON 형식을 따르는 문자열을 Go 언어의 데이터 유형으로 변환하는 것을 의미합니다. Golang에서는 Unmarshal 함수를 통해 JSON 역직렬화를 구현할 수 있습니다.
다음은 간단한 예입니다.
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonString := `{"name":"小明","age":20}` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil { fmt.Println("JSON反序列化失败:", err) return } fmt.Println("JSON反序列化结果:", person) }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
JSON反序列化结果: {小明 20}
위 예에서는 먼저 JSON 형식 문자열 jsonString을 정의합니다. 다음으로 Unmarshal 함수를 사용하여 jsonString을 Person 구조 인스턴스 person으로 역직렬화합니다. Unmarshal 함수의 첫 번째 매개변수는 바이트 슬라이스이고 문자열은 바이트 슬라이스로 변환되어야 한다는 점에 유의해야 합니다.
요약:
encoding/json 패키지의 Marshal 및 Unmarshal 함수를 사용하면 Golang에서 JSON 직렬화 및 역직렬화 작업을 구현할 수 있습니다. 실제 개발에서 JSON 직렬화 및 역직렬화는 매우 일반적인 작업이며, 특히 프런트 엔드와 상호 작용하거나 외부 API 데이터를 처리할 때 더욱 그렇습니다. 이러한 기술을 익히면 개발 효율성이 크게 향상될 수 있습니다.
위 내용은 Golang에서 JSON 직렬화 및 역직렬화를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!