Golang을 사용하여 JSON HTTP 응답 구문 분석: "ip" 값 검색
이 기사에서는 구문 분석과 관련된 문제를 다룹니다. Golang의 JSON HTTP 응답, 특히 다음에서 제공된 것과 유사한 샘플 JSON 출력에서 "ip" 값을 검색하는 방법 질문.
JSON 응답에서 IP 주소를 추출하여 콘솔에 인쇄할 수 있는 프로그램을 만드는 것이 목표입니다. 이를 달성하기 위해 Golang에 내장된 JSON 구문 분석 기능을 활용하겠습니다.
JSON 응답의 구조를 반영하는 예제라는 사용자 정의 구조체를 정의하는 것부터 시작하겠습니다. 이 구조체에는 "유형", "데이터" 및 "하위 집합"에 대한 필드가 있습니다. 마찬가지로 JSON 응답의 각 부분을 포함하도록 Subset 및 Address에 대한 중첩 구조체를 정의합니다.
type Example struct { Type string `json:"type,omitempty"` Subsets []Subset `json:"subsets,omitempty"` } type Subset struct { Addresses []Address `json:"addresses,omitempty"` } type Address struct { IP string `json:"IP,omitempty"` }
main() 함수에서 HTTP 요청의 JSON 응답을 읽고 디코딩합니다. 예제 구조체에. 여기에는 json.Decoder 유형을 사용하여 응답 본문의 바이트 스트림을 구문 분석하는 작업이 포함됩니다.
m := []byte(`{...}`) // Sample JSON response from HTTP request body r := bytes.NewReader(m) decoder := json.NewDecoder(r) val := &Example{} err := decoder.Decode(val) if err != nil { log.Fatal(err) }
JSON 응답이 예제 구조체로 디코딩되면 다음을 반복하여 "ip" 값에 액세스할 수 있습니다. 하위 집합 및 주소 조각.
for _, s := range val.Subsets { for _, a := range s.Addresses { fmt.Println(a.IP) } }
이 프로그램의 출력은 원하는 "ip" 값이 되며, 이 예에서는 다음과 같습니다. "192.168.103.178."
이 접근 방식을 사용하면 Golang의 JSON 구문 분석 기능을 사용하여 깔끔하고 효율적인 방식으로 JSON HTTP 응답을 구문 분석하고 "ip"와 같은 특정 값을 검색할 수 있습니다.
위 내용은 Golang의 JSON HTTP 응답에서 \'ip\' 값을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!