我最近将json消息解析为结构数组,如下所示:
type Fruit struct {
Number string
Type string
}
type Person struct {
Pid string
Fruits []Fruit
}
func main() {
var p Person
str := `{"pid":"123","fruits":[{"number":"10","type":"apple"},{"number":"50","type":"cherry"}]}`
json.Unmarshal([]byte(str), &p)
//loop struct array and insert into database
stmt, err := tx.Prepare(`insert into empi_credentials(PID, type, num) values(?, ?, ?)`)
if err != nil {
panic(err.Error())
}
defer stmt.Close()
for x := range p.Fruits {
if _, err = stmt4.Exec(string(i), x.Type, x.Number); err != nil {
log.Println("stmt1.Exec: ", err.Error())
return
}
}
}
当我编译它时,编译器说x.Type和x.Number undefined ...
我该如何解决?
答案 0 :(得分:9)
修复错误
undefined: i
x.Type undefined (type int has no field or method Type)
x.Number undefined (type int has no field or method Number)
变化
for x := range p.Fruits
到
for i, x := range p.Fruits