>  기사  >  백엔드 개발  >  golang json을 중첩하는 방법

golang json을 중첩하는 방법

WBOY
WBOY원래의
2023-05-10 10:34:081005검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.