介绍你好,我正在 Go AppEngine 上做一个模块,我在读取一些模型时遇到问题,其中有嵌套模型。模型是Party,我想要的是Permissions。但是,当我从数据存储中获取 Party 时,Permissions 结构字段的类型是字符串。//And when I do fmt.Println(party.Permissions) show this:%!(EXTRA string=jjrz�5878654076715008 *��jjrzshowOnMessages *zcanInviteAssistants *zcanInviteOrganizers *zcanEditEvent *zroleName * organizerzisAdmin *�z�4709220381360128 *��jjrzshowOnMessages *zcanInviteAssistants *zcanInviteOrganizers *zcanEditEvent *zroleName *ownerzisAdmin *��那个字符串是什么?有没有办法获得原始结构?模型走type Party struct { Name string `datastore:"name"` Permissions string `datastore:"permissions"`}type PartyPermission struct { isAdmin bool canInviteOrganizers bool canInviteAssistants bool canEditParty bool showOnMessages bool roleName string}爪哇@Entitypublic class Party implements Cloneable, Serializable { @Id private Long id; private String name; private Map<String, PartyPermission> permissions; // constructor ... // getters, setters, etc}public class PartyPermission implements Serializable { private static final long serialVersionUID = 3019266092062869643L; private boolean isAdmin; private boolean canInviteOrganizers; private boolean canInviteAssistants; private boolean canEditEvent; private boolean showsOnMessages; private String roleName; // constructor // getters, setters, etc}我试过的我从 10 号星期一开始,我不知道那个字符串是什么。我想也许那个字符串是一个接口,我可以将该字符串转换为一个接口,然后转换为我真正想要的,map[string]PartyPermission。所以,反思:func (p *Party) GetPermissions() (map[string]PartyPermission) { iPermissions := reflect.ValueOf(p.Permissions).Interface() return iPermissions.(map[string]PartyPermission) }编译得很好,但 Go 说字符串不能转换成其他东西。就像是:interface conversion: interface is string, not map[string]packName.PartyPermission谢谢你的时间。
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消