猿问

Unmarshal 将内部对象值设置为 json 字符串

我正在从firebase读取数据,响应为“map[string]interface{}”,例如:


Response: {

 Id: 1,

 Name: "Marwan",

 Career: {

  employeer: "mycompany",

  salary: "100",

 }

}

我有一个结构:


type Employee struct {

 Id int

 Name string

 Career CareerType

}


type CareerType struct {

 Employeer string

 Salary string

}

当我执行以下操作时:


marshal, _ := json.Marshal(data)

json.Unmarshal(marshal, Emplyee{})

结果将为:


Reposnse: {

 Id: 1,

 Name: "Marwan",

 Career: "{\"employeer\":\"mycompany\", \"salary\":\"100\"}"

}

有没有人知道为什么内在对象(在这种情况下是职业)没有被解构到一个对象上?难道不应该有智慧的行动来隐含地做到这一点吗?


元芳怎么了
浏览 94回答 1
1回答

浮云间

封送处理数据时,只需传入与结构对应的元素。例如:bytes, _ := json.Marshal(data["Response"])之后,取消编组应按预期工作:var employee Employee json.Unmarshal(bytes, &employee)employee现在应如下所示:{Id:1 Name:Marwan Career:{Employer:mycompany Salary:100}}
随时随地看视频慕课网APP

相关分类

Go
我要回答