为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
元芳怎么了 2022-09-05 17:31:24
我正在从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}}


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号