>백엔드 개발 >Golang >Go에서 JSON 배열을 구조화된 데이터로 구문 분석하는 방법은 무엇입니까?

Go에서 JSON 배열을 구조화된 데이터로 구문 분석하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-17 19:31:02571검색

How to Parse JSON Arrays into Structured Data in Go?

Go에서 JSON 배열 구문 분석

정의된 구조체와 함께 Unmarshal 사용

문제:

Go에서 객체가 포함된 복잡한 JSON 배열을 구조화된 형식으로 구문 분석하는 방법은 무엇입니까?

샘플 JSON:

[{"id":694476444991229955,"id_str":"694476444991229955"}]

해결책:

  1. JSON 데이터를 모델링하기 위해 Go 구조체를 정의합니다.

    type Tweet struct {
     ID       int64  `json:"id"`
     IDStr    string `json:"id_str"`
    }
  2. 파싱된 내용을 저장할 트윗 구조체의 조각을 만듭니다. 결과.

    tweets := make([]Tweet, 0)
  3. JSON 배열을 트윗 슬라이스로 비정렬화합니다.

    err := json.Unmarshal([]byte(jsonString), &tweets)
    if err != nil {
     fmt.Println(err)
    }
  4. 트윗 슬라이스를 반복하여 구문 분석된 결과에 액세스합니다. data.

    for _, tweet := range tweets {
     fmt.Println(tweet.ID, tweet.IDStr)
    }

Map[string]interface{} 슬라이스로 역마샬링

참고: 이 방법에는 다음이 필요합니다. 인덱싱 및 유형 어설션을 사용하여 값에 액세스합니다.

  1. 파싱된 결과를 보관할 맵 조각을 만듭니다.

    tweets := make([]map[string]interface{}, 0)
  2. JSON을 비정렬화합니다.

    err := json.Unmarshal([]byte(jsonString), &tweets)
    if err != nil {
     fmt.Println(err)
    }
  3. 파싱된 데이터에 액세스하려면 맵 슬라이스를 반복합니다.

    for _, tweet := range tweets {
     id, ok := tweet["id"].(int64)
     if ok {
         fmt.Println("ID:", id)
     }
    }

위 내용은 Go에서 JSON 배열을 구조화된 데이터로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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