Tôi có đoạn mã sau để thử Unmarshal file json này, tuy nhiên dòng json.Unmarshal ([] byte (msg ["restaurant"]), & restaurant) luôn đưa ra một lỗi. Làm thế nào tôi có thể làm cho Unmarshal bỏ qua "nhà hàng" hoặc chỉ truyền dữ liệu "nhà hàng" cho hàm Unmarshal?golang json unmarshal một phần của bản đồ [string] interface {}
Cảm ơn!
{
"restaurant": {
"name": "Tickets",
"owner": {
"name": "Ferran"
}
}
}
file, e := ioutil.ReadFile("./rest_read.json")
if e != nil {
fmt.Println("file error")
os.Exit(1)
}
var data interface{}
json.Unmarshal(file, &data)
msg := data.(map[string]interface{})
log.Println(msg)
log.Println(msg["restaurant"])
log.Println(reflect.TypeOf(msg["restaurant"]))
var restaurant Restaurant
json.Unmarshal([]byte(msg["restaurant"]), &restaurant)
log.Println("RName: ", restaurant.Name)
log.Println("Name: ", restaurant.Owner.Name)
Câu trả lời hay! Đôi khi làm cho một mô hình để làm Unmarshalling nghiêm ngặt là một nỗi đau. – Civilian