首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用嵌套映射将文档对象(documentSnapshot)修复到POJO

用嵌套映射将文档对象(documentSnapshot)修复到POJO
EN

Stack Overflow用户
提问于 2020-05-09 21:36:34
回答 2查看 398关注 0票数 2

我试图序列化的防火墙文档包含一个字符串映射图,如下所示:

我的集合中的一些示例文档:

代码语言:javascript
运行
复制
id: "someId1" (String)
vouchers (Map)
    voucher_with_some_random_id_1 (Map)
        name: "name 1"
        description: "description 1"
    voucher_with_some_random_id_2 (Map)
        name: "name 2"
        description: "description 2"    

我在创建匹配的POJO类时遇到的问题是,内部映射的字段名不是固定的,因为我的vouchers Map中的凭证数量不时变化。

对于具有未知自定义ID的documents,有一个solution (注释@DocumentId)

但我找不到适用于地图的注释。

我最近的尝试失败了:

代码语言:javascript
运行
复制
public class MyPOJO {

    public MyPOJO() {
    }

    public String id;
    public VouchersPOJO vouchers;

}

public class VouchersPOJO {

    public VouchersPOJO() {
    }

    public List<ActualVoucherPOJO> vouchers;  

}

public class ActualVoucherPOJO {

    public ActualVoucherPOJO() {
    }

    public String name, description;

}

MyPOJO x = documentSnapshot.toObject(MyPOJO.class);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-09 22:46:32

正如您已经说过的,voucherMap,所以这也是您应该在Java类中使用的:

代码语言:javascript
运行
复制
public class MyPOJO {

    public String id;
    public Map<String,Voucher> vouchers;

}

public class Voucher {

    public String name, description;

}
票数 0
EN

Stack Overflow用户

发布于 2020-05-09 21:58:55

在这种情况下,我不认为toObject()将在整个数据结构上工作。它不是用来处理动态/可变数据的。相反,您必须手动:

snapshot

  • Convert中的
  1. 迭代地图的条目--每个映射都返回到单独的MyPOJO对象,最终的MyPOJO对象是使用在地图

中找到的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61704079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档