Java 如何在Reformation2中捕获不同对象的两个数组的api响应?
如何在第2节中捕捉以下响应?它有两种不同的对象类型。从api中检索后,如何存储和使用它? 这是我的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":
{
"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,并将您的响应复制到 以获得您的回复