【问题标题】:Getting Json object and Json Array in Same KEY在相同的 KEY 中获取 Json 对象和 Json 数组
【发布时间】:2020-04-16 09:17:06
【问题描述】:

当它们只有一个响应(计划)时,我得到 JSON 对象,当它们有多个响应(计划)时,我得到 JSON 数组。如何处理 JSON 响应?

JSON ARRAY 当他们有多个计划时。

 {
            "ocrNumber": "0123456",
            "userName": "dddd",
            "plan": [{
                "lat": "13.1234",
                "long": "7.1234",
                "imagepath": "sd / image / demo.jpg"
            },{
                "lat": "13.1234",
                "long": "7.1234",
                "imagepath": "sd / image / demo.jpg"
            }]
        }

JSON OBJECT 当他们只有一个计划时。

 {
            "ocrNumber": "0123456",
            "userName": "dddd",
            "plan": {
                "lat": "13.1234",
                "long": "7.1234",
                "imagepath": "sd / image / demo.jpg"
            }
        }

【问题讨论】:

标签: java android arrays json


【解决方案1】:

在您的应用级 gradle 文件中添加依赖项。

implementation 'com.google.code.gson:gson:2.8.5'

创建 MyResponse.java

public class MyResponse {
    @SerializedName("ocrNumber")
    private String ocrNumber;   
    @SerializedName("userName")
    private String userName;

    @SerializedName("plan")
    private ArrayList<Plan> plan;

    public String getOcrNumber() {
        return ocrNumber;
    }

    public void setOcrNumber(String ocrNumber) {
        this.ocrNumber = ocrNumber;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public ArrayList<Plan> getPlan() {
        return plan;
    }

    public void setPlan(ArrayList<Plan> plan) {
        this.plan = plan;
    }
}

创建 Plan.java 类

public class Plan {

    @SerializedName("lat")
    private String lat;
    @SerializedName("long")
    private String longStr;

    @SerializedName("imagepath")
    private String imagepath;


    public String getLat() {
        return lat;
    }

    public void setLat(String lat) {
        this.lat = lat;
    }

    public String getLongStr() {
        return longStr;
    }

    public void setLongStr(String longStr) {
        this.longStr = longStr;
    }

    public String getImagepath() {
        return imagepath;
    }

    public void setImagepath(String imagepath) {
        this.imagepath = imagepath;
    }
}

使用 Gson 将您的 jsonString 转换为对象

Gson gson = new Gson();
MyResponse response = gson.fromJson(yourJsonString, MyResponse.class);

【讨论】:

  • 当它们是 Json 对象但适用于 JSON 数组时,值不会在响应中设置
  • 这永远行不通。我仍然收到 JsonException。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 2021-04-26
  • 2013-09-24
  • 2019-01-06
相关资源
最近更新 更多