Die folgende Golang-Tutorial-Kolumne zeigt Ihnen, wie Golang das JSON-Format analysiert. Ich hoffe, dass es Freunden in Not hilfreich sein wird!
Der interaktive Datenteil zwischen dem Client und dem Server im Projekt ist JSON und muss daher auf dem Server analysiert werden. Das Parsen komplexer JSON ist tatsächlich ziemlich mühsam.
Die interaktiven Daten ähneln dem folgenden Format:
{"sn":1,"ls":false,"bg":0,"ed":0,"ws":[{"bg":0,"cw":[{"sc":0,"w":"还"}]},{"bg":0,"cw":[{"sc":0,"w":"有点"}]},{"bg":0,"cw":[{"sc":0,"w":"眼熟"}]}]}
Sie müssen das w-Feld im JSON-Format herausnehmen und es zur Anzeige in eine Ergebniszeichenfolge buchstabieren.
func RecResultJsonToPlain() { var recResult string var dat map[string]interface{} json.Unmarshal([]byte(json_str), &dat) if v, ok := dat["ws"]; ok { ws := v.([]interface{}) for i, wsItem := range ws { wsMap := wsItem.(map[string]interface{}) if vCw, ok := wsMap["cw"]; ok { cw := vCw.([]interface{}) for i, cwItem := range cw { cwItemMap := cwItem.(map[string]interface{}) if w, ok := cwItemMap["w"]; ok { recResult = recResult + w.(string) } } } } } fmt.Println(recResult) }
type CWItem struct { SC int32 `json:"sc"` W string `json:"w"`}type WSItem struct { CW []CWItem}type IatResult struct { SN int32 `json:"sn"` LS bool `json:"ls"` BG int32 `json:"bg"` ED int32 `json:"ed"` WS []WSItem `json:"ws"`}
type AutoGenerated struct { Sn int `json:"sn"` Ls bool `json:"ls"` Bg int `json:"bg"` Ed int `json:"ed"` Ws []struct { Bg int `json:"bg"` Cw []struct { Sc int `json:"sc"` W string `json:"w"` } `json:"cw"` } `json:"ws"` }
obligatorische Beschreibungen. Wenn Sie also nur die entsprechenden Elemente benötigen, ist es in Ordnung, andere Elemente undefiniert zu lassen. Eine andere Art von Daten besteht darin, dass die Elemente im Array immer noch Arrays sind und das letzte Array Zahlen- oder Zeichenfolgentypen enthält. Die Daten lauten wie folgt Suche Ein Codestück lautet wie folgt und implementiert UnmarshalJSON erneut:
func RecResultJsonToPlain(jsonResult []byte)(recPlainResult string) { var r IatResult json.Unmarshal(jsonResult, &r) for _, wsItem := range r.WS { for _, cwItem := range wsItem.CW { recPlainResult = recPlainResult + cwItem.W } } return recPlainResult }
Weitere technische Artikel zu Golang finden Sie in der Spalte „Go-Sprache“!
Das obige ist der detaillierte Inhalt vonSo analysieren Sie das JSON-Format in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!