Go에서 여러 JSON 개체 구문 분석: 중첩 개체 처리
중첩 개체 형태로 서버에서 반환된 여러 JSON 개체를 처리하는 경우 , 표준 인코딩/json 패키지에 어려움이 발생할 수 있습니다. 이 기사에서는 이러한 시나리오를 효과적으로 처리하기 위해 json.Decoder를 사용하는 솔루션에 대해 자세히 설명합니다.
다음 예를 고려하세요.
{"something":"foo"} {"something-else":"bar"}
다음 코드를 사용하여 이 데이터를 구문 분석합니다.
correct_format := strings.Replace(string(resp_body), "}{", "},{", -1) json_output := "[" + correct_format + "]"
오류가 발생합니다.
해결책 사용 json.Decoder
이 문제를 해결하기 위해 우리는 json.Decoder를 활용합니다. json.Decoder는 JSON 데이터 스트림을 읽고 디코딩하여 입력에서 개별 JSON 개체를 순차적으로 디코딩합니다.
package main import ( "encoding/json" "fmt" "io" "log" "strings" ) var input = ` {"foo": "bar"} {"foo": "baz"} ` type Doc struct { Foo string } func main() { dec := json.NewDecoder(strings.NewReader(input)) for { var doc Doc err := dec.Decode(&doc) if err == io.EOF { // all done break } if err != nil { log.Fatal(err) } fmt.Printf("%+v\n", doc) } }
이 솔루션에서는
플레이그라운드 및 결론
이 솔루션을 이동 중에도 사용해 볼 수 있습니다. 플레이그라운드: https://play.golang.org/p/ANx8MoMC0yq
json.Decoder를 사용하면 더 큰 JSON 구조 내에 중첩되어 있는 경우에도 여러 JSON 개체를 구문 분석할 수 있습니다.
위 내용은 Go에서 특히 중첩된 여러 JSON 개체를 어떻게 구문 분석할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!