정의된 구조체와 함께 Unmarshal 사용
문제:
Go에서 객체가 포함된 복잡한 JSON 배열을 구조화된 형식으로 구문 분석하는 방법은 무엇입니까?
샘플 JSON:
[{"id":694476444991229955,"id_str":"694476444991229955"}]
해결책:
JSON 데이터를 모델링하기 위해 Go 구조체를 정의합니다.
type Tweet struct { ID int64 `json:"id"` IDStr string `json:"id_str"` }
파싱된 내용을 저장할 트윗 구조체의 조각을 만듭니다. 결과.
tweets := make([]Tweet, 0)
JSON 배열을 트윗 슬라이스로 비정렬화합니다.
err := json.Unmarshal([]byte(jsonString), &tweets) if err != nil { fmt.Println(err) }
트윗 슬라이스를 반복하여 구문 분석된 결과에 액세스합니다. data.
for _, tweet := range tweets { fmt.Println(tweet.ID, tweet.IDStr) }
Map[string]interface{} 슬라이스로 역마샬링
참고: 이 방법에는 다음이 필요합니다. 인덱싱 및 유형 어설션을 사용하여 값에 액세스합니다.
파싱된 결과를 보관할 맵 조각을 만듭니다.
tweets := make([]map[string]interface{}, 0)
JSON을 비정렬화합니다.
err := json.Unmarshal([]byte(jsonString), &tweets) if err != nil { fmt.Println(err) }
파싱된 데이터에 액세스하려면 맵 슬라이스를 반복합니다.
for _, tweet := range tweets { id, ok := tweet["id"].(int64) if ok { fmt.Println("ID:", id) } }
위 내용은 Go에서 JSON 배열을 구조화된 데이터로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!