encoding/json 패키지에서 제공하는 기능을 사용하여 JSON 문자열을 인코딩하고 디코딩합니다.
JSON(JavaScript Object Notation)은 일반적으로 사용되는 데이터 교환 형식으로 프런트엔드 및 백엔드 데이터 전송 및 저장에 널리 사용됩니다. Go 언어 표준 라이브러리의 인코딩/json 패키지는 JSON 문자열을 쉽게 인코딩하고 디코딩할 수 있는 기능 세트를 제공합니다.
Go 언어에서는 구조체 구조를 사용하여 JSON 개체를 표현한 다음 인코딩/json 패키지에서 제공하는 Marshal 및 Unmarshal 함수를 사용하여 인코딩 및 디코딩할 수 있습니다.
먼저 JSON 문자열의 인코딩을 살펴보겠습니다. 인코딩은 Go 언어의 구조체 개체를 JSON 문자열로 변환하는 것입니다.
코드 예:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Gender string } func main() { p := Person{ Name: "Alice", Age: 25, Gender: "Female", } // 使用json.Marshal函数对Person对象进行编码,返回一个字节数组 jsonBytes, err := json.Marshal(p) if err != nil { fmt.Println("JSON编码失败:", err) return } // 将字节数组转换为字符串 jsonString := string(jsonBytes) fmt.Println(jsonString) }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
{"Name":"Alice","Age":25,"Gender":"Female"}
인코딩된 JSON 문자열이 원본 Person 객체에 일대일로 대응하고 각 객체의 필드가 JSON 문자열 값 쌍의 키입니다. 인코딩된 JSON 문자열은 원래 순서를 유지합니다.
다음으로 JSON 문자열의 디코딩을 살펴보겠습니다. 디코딩은 JSON 문자열을 Go 언어의 구조체 개체로 변환하는 것입니다.
코드 예:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Gender string } func main() { jsonString := `{"Name":"Alice","Age":25,"Gender":"Female"}` // 将JSON字符串转换为字节数组 jsonBytes := []byte(jsonString) // 使用json.Unmarshal函数对JSON字符串进行解码 var p Person err := json.Unmarshal(jsonBytes, &p) if err != nil { fmt.Println("JSON解码失败:", err) return } fmt.Println(p) }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
{Alice 25 Female}
디코딩된 Person 객체가 원래 JSON 문자열에 일대일로 대응하고 각 키-값 쌍이 객체의 필드입니다. 디코딩된 필드는 원래 데이터 유형을 유지합니다.
인코딩 및 디코딩을 위해 인코딩/json 패키지를 사용할 때 변환을 수행하려면 Go 언어의 구조체 개체에 있는 필드 이름이 JSON 문자열의 키 이름과 일치하는지 확인해야 합니다. 바르게.
위는 인코딩/json 패키지를 사용하여 JSON 문자열을 인코딩하고 디코딩하는 샘플 코드입니다. 이러한 기능을 사용하면 Go 언어로 JSON 데이터를 쉽게 처리할 수 있습니다.
위 내용은 인코딩/json 패키지에서 제공하는 기능을 사용하여 JSON 문자열을 인코딩 및 디코딩합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!