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

将字符串数据转换为结构:在 Java AppEngine (Objectify) 上插入

将字符串数据转换为结构:在 Java AppEngine (Objectify) 上插入

Go
慕村225694 2021-11-01 16:05:10
介绍你好,我正在 Go AppEngine 上做一个模块,我在读取一些模型时遇到问题,其中有嵌套模型。模型是Party,我想要的是Permissions。但是,当我从数据存储中获取 Party 时,Permissions 结构字段的类型是字符串。//And when I do fmt.Println(party.Permissions) show this:%!(EXTRA string=jjrz�5878654076715008 *��jjrzshowOnMessages *zcanInviteAssistants *zcanInviteOrganizers *z canEditEvent *zroleName *    organizerzisAdmin *�z�4709220381360128 *��jjrzshowOnMessages *zcanInviteAssistants *zcanInviteOrganizers *z canEditEvent *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 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

你不能,你必须为该格式创建一个解码器。

你可以使用 json 或其他东西。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信