【问题标题】:Is my POJO object for firebase Realtime Database built correctly?我的用于 firebase 实时数据库的 POJO 对象是否正确构建?
【发布时间】:2019-01-02 12:25:58
【问题描述】:

我正在尝试为我的 firebase 实时数据库构建 POJO。 根据我的实时数据库,我是否正确执行?链接如下

detailData,detailContent,detailTitleContent,isDetail,titleContent 它们在任何地方都命名相同,只是它们的文本不同。

public class POJO {
 private String titleContent;
 private String detailContent;
 private String detailTitleContent;
 private List<String> detailData = new ArrayList<>();
 private List<String> textInfo = new ArrayList<>();
 private boolean isDetail;
 private boolean isList;

public POJO() {

}


public POJO(String titleContent, String detailContent, String 
   detailTitleContent, List<String> detailData, List<String> textInfo, 
  boolean isDetail, boolean isList) {
    this.titleContent = titleContent;
    this.detailContent = detailContent;
    this.detailTitleContent = detailTitleContent;
    this.detailData = detailData;
    this.textInfo = textInfo;
    this.isDetail = isDetail;
    this.isList = isList;
}



public String getTitleContent() {
    return titleContent;
}

public String getDetailContent() {
    return detailContent;
}

public String getDetailTitleContent() {
    return detailTitleContent;
}

public List<String> getDetailData() {
    return detailData;
}

public List<String> getTextInfo() {
    return textInfo;
}

public boolean isDetail() {
    return isDetail;
}

public boolean isList() {
    return isList;
}

}

【问题讨论】:

  • 您的问题是让我们审查您的 POJO 课程吗?您可以简单地使用jsonschema2pojo 来生成您的 POJO...
  • nope,根据我的数据库询问是否正确。我的 json 我对它来说太大了
  • “是否正确”这就是审查的意思……正如我之前所说,手动编写 POJO 类/es 是可以的,但您必须小心任何拼写错误。但是对于您最初的问题,您的 POJO 不正确,因为您已将所有内容都存储在 1 个类中。每个不同的对象都应该有自己的类。请提供此架构的 JSON,我会进一步为您提供帮助。

标签: java android firebase-realtime-database model pojo


【解决方案1】:

根据以下响应(您提供的),我将创建 POJO 类

{
    "datas": [{
        "detailData": [{
            "detailContent": "<p>LOTS of information</p>",
            "detailTitleContent": "Title"
        }, {
            "detailContent": "<p>Lots of more information!</p>",
            "detailTitleContent": "Second Title"
        }],
        "isDetail": false,
        "titleContent": "Last Title"
    }]
}

因此,查看此响应,您可以看到您的第一个(我们命名为“MyPojo”)类将有一个“datas”对象数组。

public class MyPojo
{
    private Datas[] datas;

    public Datas[] getDatas (){
        return datas;
    }

    public void setDatas (Datas[] datas){
        this.datas = datas;
    }
}

现在我们必须为“数据”创建一个模型对象:

public class Datas
{
    private String isDetail;
    private String titleContent;
    private DetailData[] detailData;

    public String getIsDetail (){
        return isDetail;
    }

    public void setIsDetail (String isDetail){
        this.isDetail = isDetail;
    }

    public String getTitleContent (){
        return titleContent;
    }

    public void setTitleContent (String titleContent){
        this.titleContent = titleContent;
    }

    public DetailData[] getDetailData (){
        return detailData;
    }

    public void setDetailData (DetailData[] detailData){
        this.detailData = detailData;
    }
}

最后但同样重要的是,“DetailData”模型是另一个数组:

public class DetailData
{
    private String detailTitleContent;
    private String detailContent;

    public String getDetailTitleContent (){
        return detailTitleContent;
    }

    public void setDetailTitleContent (String detailTitleContent){
        this.detailTitleContent = detailTitleContent;
    }

    public String getDetailContent (){
        return detailContent;
    }

    public void setDetailContent (String detailContent){
        this.detailContent = detailContent;
    }
}

从这里开始,您应该有一个完整的 Pojo 用于您的 JSON 响应并准备好进行处理。只想为您指出两件事:

1. 我强烈建议您阅读以下教程 Android JSON Parsing Tutorial 并密切注意 [和 { –(方括号和大括号) 部分,因为您想深入了解 JSONArrayJSONObject
2 . 使用JSONLint 来验证您的JSON 响应,因为它有时很有帮助,并且还使用Convert XML or JSON to Java Pojo Classes - Online 工具根据JSON 响应生成Pojo 类(在这种情况下我自己使用它)。这背后的主要好处是准确性,复制和实施不到 1 分钟。

祝你好运,如果您需要进一步的帮助,请告诉我:)

【讨论】:

  • 太棒了!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多