有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在同一个键中获取Json对象和Json数组

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

JSON数组,当它们是多个计划时

 {
            "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对象,当它们只有一个计划时

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

共 (1) 个答案

  1. # 1 楼答案

    在应用程序级别的gradle文件中添加依赖项

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

    创建MyResponse。爪哇

    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;
        }
    }
    

    制定计划。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);