正在对象 java 中解析 JSON 个对象

Parsing JSON Object within an Object java

我正在尝试将此 json 映射到 volley。但是每次我的构造函数中都会出现错误。

[
    {
        "id": 19,
        "time_created": {
            "date": "2018-09-18 09:24:34.000000",
            "timezone_type": 3,
            "timezone": "America/Chicago"
        },
]

所以我需要获取 time_created 对象。这是我的模型class; public class NeighbourhoodOther implements Serializable{

    public int id;
    public TimeCreated timeCreated;
 public NeighbourhoodOther(){

    }
    public NeighbourhoodOther(int id, TimeCreated timeCreated ) {
        this.id = id;
        this.timeCreated= time_created;
       }

    public TimeCreated getTimeCreated() {
        return timeCreated;
    }

    public void setTimeCreated(TimeCreated timeCreated) {
        this.timeCreated = timeCreated;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    public static class TimeCreated {
        public String timezone;
        public int timezoneType;
        public String date;

        public String getTimezone() {
            return timezone;
        }

        public void setTimezone(String timezone) {
            this.timezone = timezone;
        }

        public int getTimezoneType() {
            return timezoneType;
        }

        public void setTimezoneType(int timezoneType) {
            this.timezoneType = timezoneType;
        }

        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }
    }

}

这是我尝试使用 volley 获取数据的方式,但我每次都遇到错误。

  for (int i = 0; i < neighOther.length(); i++) {


                            JSONObject neighOtherObject = neighOther.getJSONObject(i);
                                int id = neighOtherObject.getInt("id");
                          
                           
                           NeighbourhoodOther.TimeCreated timeCreated = neighOtherObject.getJSONObject("time_created");
                              

                                NeighbourhoodOther neighbourhoodOther = new NeighbourhoodOther(id, time_created);
                               otherNeighbourHoodList.add(neighbourhoodOther);

}

我的构造函数中的错误表明它需要一个 JSONObject 而不是 TimeCreated。什么是获取数据的最佳方式。我需要将 date 字符串传递给 TextView.

NeighbourhoodOther.TimeCreated timeCreated = neighOtherObject.getJSONObject("time_created")returns一个JSONObject不是NeighbourhoodOther.TimeCreated

尝试:

JSONObject obj = neighOtherObject.getJSONObject("time_created");
NeighbourhoodOther.TimeCreated temp = new NeighbourhoodOther.TimeCreated()
temp.timezone = obj.getString("timezone");
... fill in NeighbourhoodOther.TimeCreated members

getJSONObject return 一个 jsonobject,因此您应该将其转换为自定义类型。 有很多图书馆可以做到这一点,Gson 就是其中之一。

    import com.google.gson.Gson; 
    
    //other stuffs

    Gson gson= new Gson();

    TimeCreated obj = gson.fromJson(neighOtherObject.getJSONObject("time_created").toString(), TimeCreated.class);