java - 在同一 KEY 中获取 Json 对象和 Json 数组

标签 java android arrays json

当它们只有一个响应(计划)时我得到 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"
            }
        }

最佳答案

在应用级 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);

关于java - 在同一 KEY 中获取 Json 对象和 Json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61246719/

相关文章:

arrays - Powershell将不同类型的数组添加到数组中

java - 将 Button 更改为 JButton 无法修复它(((

java - 在 SCons 中构建项目时如何指定 java 标志?

java - 将 Clojure 数据结构转换为 Java 集合

android - 性能比较 : AsyncTasks vs Threads

Android Couchbase Lite 获取所有 channel

android - Firebase 云消息传递重复通知

java - 如何使用堆栈检查字符串

c++ - 排列程序无法写入数组 - 运行时错误

javascript - 按数组值的 Angular 自定义过滤器