Golang에서는 JSON 개체를 사용할 때 여러 JSON 개체를 중첩해야 하는 경우가 있습니다. 이 글에서는 Golang에서 JSON 객체의 중첩을 구현하는 방법을 간략하게 소개합니다.
JSON(JavaScript Object Notation)은 프런트엔드 및 백엔드 데이터 전송에 일반적으로 사용되는 경량 데이터 교환 형식입니다. Golang에서는 표준 라이브러리에 내장된 "encoding/json" 패키지를 사용하여 JSON을 인코딩하고 디코딩할 수 있습니다.
다음은 도서 정보를 나타내는 간단한 JSON 데이터 예시입니다.
{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }
위 예시에서 'publisher' 개체는 'book' 개체 내에 중첩되어 있습니다. Golang에서 JSON 개체의 중첩을 구현하려면 구조를 정의한 다음 표준 라이브러리에서 제공되는 메서드를 사용하여 JSON 데이터를 인코딩하거나 디코딩해야 합니다.
예를 들어 책 정보를 나타내기 위해 "Book"이라는 구조를 정의할 수 있습니다.
type Book struct { Title string `json:"title"` Author string `json:"author"` Price float64 `json:"price"` Publisher struct { Name string `json:"name"` Address string `json:"address"` } `json:"publisher"` }
위 코드에서 중첩된 구조 "Publisher"는 책의 출판 정보를 나타내는 데 사용됩니다. JSON 데이터를 인코딩 및 디코딩할 때 필드 이름이 JSON 키 이름과 올바르게 일치할 수 있도록 구조의 각 필드에 "json" 태그를 추가해야 합니다.
"encoding/json" 패키지에서 제공하는 Marshal 및 Unmarshal 메서드를 사용하여 Golang 구조를 JSON 데이터로 변환하고 JSON 데이터를 Golang 구조로 각각 변환합니다. 예를 들어 다음 코드를 사용하여 "Book" 구조를 JSON 데이터로 변환할 수 있습니다.
book := Book{ Title: "The Hitchhiker's Guide to the Galaxy", Author: "Douglas Adams", Price: 5.99, Publisher: struct { Name string `json:"name"` Address string `json:"address"` }{ Name: "Pan Books", Address: "London", }, } jsonBytes, err := json.Marshal(book) if err != nil { fmt.Println(err) } fmt.Println(string(jsonBytes))
위 코드의 출력은 다음과 같습니다.
{ "title":"The Hitchhiker's Guide to the Galaxy", "author":"Douglas Adams", "price":5.99, "publisher":{ "name":"Pan Books", "address":"London" } }
다음 코드를 사용하여 JSON 데이터를 JSON 데이터로 변환할 수 있습니다. 구조 "Book":
jsonStr := `{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }` var book Book if err := json.Unmarshal([]byte(jsonStr), &book); err != nil { fmt.Println(err) } fmt.Printf("%+v ", book)
위 코드의 출력 결과는 다음과 같습니다.
{Title:The Hitchhiker's Guide to the Galaxy Author:Douglas Adams Price:5.99 Publisher:{Name:Pan Books Address:London}}
요약:
Golang에서는 구조를 사용하여 JSON 개체의 중첩 처리를 구현할 수 있습니다. 필드 이름과 JSON 키 이름 간의 대응 관계를 지정하려면 구조에서 "json" 태그를 사용해야 합니다. Golang 구조를 JSON 데이터로, JSON 데이터를 Golang 구조로 각각 변환하려면 표준 라이브러리에 제공되는 Marshal 및 Unmarshal 메서드를 사용하세요.
위 내용은 golang json을 중첩하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!