Go에서 JSON 배열을 데이터 구조로 구문 분석
Go에서 JSON 데이터로 작업할 때는 적절한 데이터 구조를 이해하는 것이 중요합니다. 다양한 JSON 형식의 경우. 이 경우 동적 키-값 쌍의 JSON 배열을 다루고 있습니다.
문제:
다음 배열이 포함된 JSON 파일을 구문 분석하려고 합니다. JSON 객체. 그러나 데이터를 표현하기 위해 간단한 map[string]string을 사용하면 오류가 발생합니다.
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
type data map[string]string c, _ := ioutil.ReadFile("c") dec := json.NewDecoder(bytes.NewReader(c)) var d data dec.Decode(&d) // Error: cannot unmarshal array into Go value of type main.data
해결책:
JSON을 올바르게 구문 분석하려면 배열을 사용하려면 개체 배열을 나타내는 데이터 구조를 정의해야 합니다. 이는 지도 조각을 포함하는 사용자 정의 유형을 사용하여 달성할 수 있습니다.
type mytype []map[string]string
코드:
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type mytype []map[string]string func main() { var data mytype file, err := ioutil.ReadFile("test.json") if err != nil { log.Fatal(err) } err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } fmt.Println(data) }
예:
제공된 JSON의 경우 파일:
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
코드의 출력은 다음과 같습니다.
[{map[a:1]} {map[b:2]} {map[c:3]}]
위 내용은 Go에서 동적 키-값 쌍의 JSON 배열을 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!