我正在从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\"}"}有没有人知道为什么内在对象(在这种情况下是职业)没有被解构到一个对象上?难道不应该有智慧的行动来隐含地做到这一点吗?
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
封送处理数据时,只需传入与结构对应的元素。例如:
bytes, _ := json.Marshal(data["Response"])
之后,取消编组应按预期工作:
var employee Employee json.Unmarshal(bytes, &employee)
employee现在应如下所示:
{Id:1 Name:Marwan Career:{Employer:mycompany Salary:100}}- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消
