Java 如何在Reformation2中捕获不同对象的两个数组的api响应?

Java 如何在Reformation2中捕获不同对象的两个数组的api响应?,java,android,api,retrofit2,Java,Android,Api,Retrofit2,如何在第2节中捕捉以下响应?它有两种不同的对象类型。从api中检索后,如何存储和使用它? 这是我的api响应的格式 { "products": [ { "categoryID": 2, "companyID": 1, "companyName": "Audi", "productID": 1001, "productName": "S6" }, { "categoryID":

如何在第2节中捕捉以下响应?它有两种不同的对象类型。从api中检索后,如何存储和使用它? 这是我的api响应的格式

{
"products": [
    {
        "categoryID": 2,
        "companyID": 1,
        "companyName": "Audi",
        "productID": 1001,
        "productName": "S6"
    },
    {
        "categoryID": 4,
        "companyID": 1,
        "companyName": "BWM",
        "productID": 1001,
        "productName": "Zen"
    },
    {
        "categoryID": 5,
        "companyID": 1,
        "companyName": "Ford",
        "productID": 1001,
        "productName": "Mustang"
    }],
"solutions": [
    {
        "companyID": 2,
        "companyName": "Audi",
        "solutionName": "A good plan",
        "solutionType": "Personalised",
        "working": "dsjhfgsdjhfgjsdh"
    },
    {
        "companyID": 2,
        "companyName": "djfhgkkl",
        "solutionName": "A good plan",
        "solutionType": "Personalised",
        "working": "asfh"
    }
]
}

您可以在这里使用Gson解析,并为产品和解决方案数组添加@Nullable注释。使用此数据时,请检查arraylist的大小并检测列表中存在哪个数组。

您可以创建一个POJO类,然后从该对象获取数据 这是POJO

package com.example;

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Example {

    @SerializedName("products")
    @Expose
    private List<Product> products = null;
    @SerializedName("solutions")
    @Expose
    private List<Solution> solutions = null;

    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    }

    public List<Solution> getSolutions() {
        return solutions;
    }

    public void setSolutions(List<Solution> solutions) {
        this.solutions = solutions;
    }
}
-------------------------------com.example.Product.java-------------------------------

package com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Product {
    @SerializedName("categoryID")
    @Expose
    private Integer categoryID;
    @SerializedName("companyID")
    @Expose
    private Integer companyID;
    @SerializedName("companyName")
    @Expose
    private String companyName;
    @SerializedName("productID")
    @Expose
    private Integer productID;
    @SerializedName("productName")
    @Expose
    private String productName;

    public Integer getCategoryID() {
        return categoryID;
    }

    public void setCategoryID(Integer categoryID) {
        this.categoryID = categoryID;
    }

    public Integer getCompanyID() {
        return companyID;
    }

    public void setCompanyID(Integer companyID) {
        this.companyID = companyID;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Integer getProductID() {
        return productID;
    }

    public void setProductID(Integer productID) {
        this.productID = productID;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }
}
-------------------------------com.example.Solution.java-------------------------------

package com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Solution {
    @SerializedName("companyID")
    @Expose
    private Integer companyID;
    @SerializedName("companyName")
    @Expose
    private String companyName;
    @SerializedName("solutionName")
    @Expose
    private String solutionName;
    @SerializedName("solutionType")
    @Expose
    private String solutionType;
    @SerializedName("working")
    @Expose
    private String working;

    public Integer getCompanyID() {
        return companyID;
    }

    public void setCompanyID(Integer companyID) {
        this.companyID = companyID;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getSolutionName() {
        return solutionName;
    }

    public void setSolutionName(String solutionName) {
        this.solutionName = solutionName;
    }

    public String getSolutionType() {
        return solutionType;
    }

    public void setSolutionType(String solutionType) {
        this.solutionType = solutionType;
    }

    public String getWorking() {
        return working;
    }

    public void setWorking(String working) {
        this.working = working;
    }
}
package.com.example;
导入java.util.List;
导入com.google.gson.annotations.Expose;
导入com.google.gson.annotations.SerializedName;
公开课范例{
@序列化名称(“产品”)
@暴露
私有列表产品=空;
@SerializedName(“解决方案”)
@暴露
私有列表解决方案=null;
公共列表产品(){
退货产品;
}
公共产品(列出产品){
这一点。产品=产品;
}
公共列表getSolutions(){
返回解决方案;
}
公共解决方案(列出解决方案){
这就是解决方案=解决方案;
}
}
-------------------------------com.example.Product.java-------------------------------
包com.example;
导入com.google.gson.annotations.Expose;
导入com.google.gson.annotations.SerializedName;
公共类产品{
@序列化名称(“类别ID”)
@暴露
私有整数类别ID;
@序列化名称(“公司ID”)
@暴露
私有整数公司ID;
@序列化名称(“公司名称”)
@暴露
私有字符串companyName;
@SerializedName(“产品ID”)
@暴露
私有整数productID;
@SerializedName(“产品名称”)
@暴露
私有字符串产品名称;
公共整数getCategoryID(){
返回类别ID;
}
public void setCategoryID(整型categoryID){
this.categoryID=categoryID;
}
公共整数getCompanyID(){
返回公司ID;
}
public void setCompanyID(整数companyID){
this.companyID=companyID;
}
公共字符串getCompanyName(){
返回公司名称;
}
public void setCompanyName(字符串companyName){
this.companyName=companyName;
}
公共整数getProductID(){
返回productID;
}
public void setProductID(整数productID){
this.productID=productID;
}
公共字符串getProductName(){
返回产品名称;
}
公共无效setProductName(字符串productName){
this.productName=productName;
}
}
-------------------------------com.example.Solution.java-------------------------------
包com.example;
导入com.google.gson.annotations.Expose;
导入com.google.gson.annotations.SerializedName;
公共类解决方案{
@序列化名称(“公司ID”)
@暴露
私有整数公司ID;
@序列化名称(“公司名称”)
@暴露
私有字符串companyName;
@SerializedName(“解决方案名称”)
@暴露
私有字符串解决方案名称;
@SerializedName(“solutionType”)
@暴露
私有字符串解决方案类型;
@序列化名称(“工作”)
@暴露
私人串工作;
公共整数getCompanyID(){
返回公司ID;
}
public void setCompanyID(整数companyID){
this.companyID=companyID;
}
公共字符串getCompanyName(){
返回公司名称;
}
public void setCompanyName(字符串companyName){
this.companyName=companyName;
}
公共字符串getSolutionName(){
返回解决方案名称;
}
public void setSolutionName(字符串solutionName){
this.solutionName=solutionName;
}
公共字符串getSolutionType(){
返回解类型;
}
公共void集合解决方案类型(字符串解决方案类型){
this.solutionType=solutionType;
}
公共字符串getWorking(){
返回工作;
}
公共无效设置工作(字符串工作){
这个。工作=工作;
}
}

您可以使用

从JSON生成POJO,并将您的响应复制到 以获得您的回复