在MapJavaAndroid中获取地图

在MapJavaAndroid中获取地图,java,android,json,Java,Android,Json,我有这个JSON响应。 我想获取datetime内的times数据 { "code":200, "status":"OK", "results":{ "datetime":[ { "times":{ "Imsak":"04:21",

我有这个JSON响应。 我想获取datetime内的times数据

{
   "code":200,
   "status":"OK",
   "results":{
      "datetime":[
         {
            "times":{
               "Imsak":"04:21",
               "Sunrise":"-",
               "Fajr":"04:31",
               "Dhuhr":"11:41",
               "Asr":"14:58",
               "Sunset":"-",
               "Maghrib":"17:54",
               "Isha":"18:46",
               "Midnight":"-"
            },
            "date":{
               "timestamp":1617667200,
               "gregorian":"2021-04-06",
               "hijri":"1442-08-24"
            }
         }
      ],
      "location":{
         "latitude":-6.966667,
         "longitude":110.416664,
         "elevation":-9999.0,
         "country":"",
         "country_code":"ID",
         "timezone":"Asia/Jakarta",
         "local_offset":7.0
      },
      "settings":{
         "timeformat":"HH:mm",
         "school":"Ithna Ashari",
         "juristic":"Shafii",
         "highlat":"None",
         "fajr_angle":18.0,
         "isha_angle":17.0
      }
   }
}
如何获取对象“时间”并将其带入地图。 如何获取单个值和数组。

公共类示例{
public class Example {

@SerializedName("code")
@Expose
private Integer code;
@SerializedName("status")
@Expose
private String status;
@SerializedName("results")
@Expose
private Results results;

public Integer getCode() {
return code;
}

public void setCode(Integer code) {
this.code = code;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public Results getResults() {
return results;
}

public void setResults(Results results) {
this.results = results;
}

}



public class Results {

@SerializedName("datetime")
@Expose
private List<Datetime> datetime = null;
@SerializedName("location")
@Expose
private Location location;
@SerializedName("settings")
@Expose
private Settings settings;

public List<Datetime> getDatetime() {
return datetime;
}

public void setDatetime(List<Datetime> datetime) {
this.datetime = datetime;
}

public Location getLocation() {
return location;
}

public void setLocation(Location location) {
this.location = location;
}

public Settings getSettings() {
return settings;
}

public void setSettings(Settings settings) {
this.settings = settings;
}

}

public class Datetime {

@SerializedName("times")
@Expose
private HashMap<String,String> times;
@SerializedName("date")
@Expose
private Date date;

public HashMap<String,String> getTimes() {
return times;
}

public void setTimes(HashMap<String,String> times) {
this.times = times;
}

public Date getDate() {
return date;
}

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

}


public class Settings {

@SerializedName("timeformat")
@Expose
private String timeformat;
@SerializedName("school")
@Expose
private String school;
@SerializedName("juristic")
@Expose
private String juristic;
@SerializedName("highlat")
@Expose
private String highlat;
@SerializedName("fajr_angle")
@Expose
private Double fajrAngle;
@SerializedName("isha_angle")
@Expose
private Double ishaAngle;

public String getTimeformat() {
return timeformat;
}

public void setTimeformat(String timeformat) {
this.timeformat = timeformat;
}

public String getSchool() {
return school;
}

public void setSchool(String school) {
this.school = school;
}

public String getJuristic() {
return juristic;
}

public void setJuristic(String juristic) {
this.juristic = juristic;
}

public String getHighlat() {
return highlat;
}

public void setHighlat(String highlat) {
this.highlat = highlat;
}

public Double getFajrAngle() {
return fajrAngle;
}

public void setFajrAngle(Double fajrAngle) {
this.fajrAngle = fajrAngle;
}

public Double getIshaAngle() {
return ishaAngle;
}

public void setIshaAngle(Double ishaAngle) {
this.ishaAngle = ishaAngle;
}

}

public class Location {

@SerializedName("latitude")
@Expose
private Double latitude;
@SerializedName("longitude")
@Expose
private Double longitude;
@SerializedName("elevation")
@Expose
private Double elevation;
@SerializedName("country")
@Expose
private String country;
@SerializedName("country_code")
@Expose
private String countryCode;
@SerializedName("timezone")
@Expose
private String timezone;
@SerializedName("local_offset")
@Expose
private Double localOffset;

public Double getLatitude() {
return latitude;
}

public void setLatitude(Double latitude) {
this.latitude = latitude;
}

public Double getLongitude() {
return longitude;
}

public void setLongitude(Double longitude) {
this.longitude = longitude;
}

public Double getElevation() {
return elevation;
}

public void setElevation(Double elevation) {
this.elevation = elevation;
}

public String getCountry() {
return country;
}

public void setCountry(String country) {
this.country = country;
}

public String getCountryCode() {
return countryCode;
}

public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}

public String getTimezone() {
return timezone;
}

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

public Double getLocalOffset() {
return localOffset;
}

public void setLocalOffset(Double localOffset) {
this.localOffset = localOffset;
}

}
@序列化名称(“代码”) @暴露 专用整数码; @序列化名称(“状态”) @暴露 私有字符串状态; @SerializedName(“结果”) @暴露 私人成果; 公共整数getCode(){ 返回码; } 公共无效设置码(整数码){ this.code=代码; } 公共字符串getStatus(){ 返回状态; } 公共无效设置状态(字符串状态){ 这个状态=状态; } 公共结果getResults(){ 返回结果; } 公共void setResults(结果){ 这个结果=结果; } } 公开课成绩{ @SerializedName(“日期时间”) @暴露 私有列表datetime=null; @序列化名称(“位置”) @暴露 私人位置; @SerializedName(“设置”) @暴露 私人设置; 公共列表getDatetime(){ 返回日期时间; } public void setDatetime(列表datetime){ this.datetime=datetime; } 公共位置getLocation(){ 返回位置; } 公共无效设置位置(位置){ 这个位置=位置; } 公共设置getSettings(){ 返回设置; } 公共无效设置(设置){ this.settings=设置; } } 公共类日期时间{ @序列化名称(“时代”) @暴露 私有哈希映射时间; @序列化名称(“日期”) @暴露 私人日期; 公共HashMap getTimes(){ 返回次数; } 公共无效设置时间(哈希映射时间){ 这个。次=次; } 公共日期getDate(){ 返回日期; } 公共作废设置日期(日期){ this.date=日期; } } 公共类设置{ @序列化名称(“时间格式”) @暴露 私有字符串时间格式; @序列化名称(“学校”) @暴露 私立弦乐学校; @序列化名称(“法律”) @暴露 私人字符串; @SerializedName(“highlat”) @暴露 私有字符串高纬度; @序列化名称(“fajr_角”) @暴露 私人双角; @序列化名称(“isha_角”) @暴露 私人双伊沙恩格尔; 公共字符串getTimeformat(){ 返回时间格式; } 公共void setTimeformat(字符串timeformat){ this.timeformat=timeformat; } 公立学校(){ 返校; } 公立学校(弦乐学校){ 这个学校=学校; } 公共字符串getLegistic(){ 返回法律; } 公共无效集合法律(字符串法律){ 这是法律的; } 公共字符串getHighlat(){ 返回高位; } public void setHighlat(字符串highlat){ this.highlat=highlat; } 公共双getFajrAngle(){ 返回角; } 公共void setFajrAngle(双fajrAngle){ this.fajrAngle=fajrAngle; } 公共双getIshaAngle(){ 返回伊沙恩格尔; } 公共无效设置角(双设置角){ this.ishaAngle=ishaAngle; } } 公共类位置{ @序列化名称(“纬度”) @暴露 私人双纬度; @序列化名称(“经度”) @暴露 私人双经度; @序列化名称(“立面”) @暴露 私人双立面; @序列化名称(“国家”) @暴露 私人国家; @序列化名称(“国家/地区代码”) @暴露 私有字符串国家代码; @序列化名称(“时区”) @暴露 专用字符串时区; @SerializedName(“本地偏移量”) @暴露 私有双本地偏移; 公共双纬度(){ 返回纬度; } 公共纬度(双纬度){ 这个。纬度=纬度; } 公共双getLongitude(){ 返回经度; } 公共经度(双经度){ 这个经度=经度; } 公共双立面图(){ 回归高程; } 公共立面(双立面){ 本图中,标高=标高; } 公共字符串getCountry(){ 返回国; } 公共国家/地区(字符串国家/地区){ 这个国家=国家; } 公共字符串getCountryCode(){ 返回国家代码; } 公共无效setCountryCode(字符串countryCode){ this.countryCode=countryCode; } 公共字符串getTimezone(){ 返回时区; } 公共无效设置时区(字符串时区){ this.timezone=时区; } 公共双getLocalOffset(){ 返回localOffset; } 公共void setLocalOffset(双localOffset){ this.localOffset=localOffset; } }
下面的代码将使“times”成为对象。比如:

        String json = "{\"code\":200,\"status\":\"OK\",\"results\":{\"datetime\":[{\"times\":{\"Imsak\":\"04:21\",\"Sunrise\":\"-\",\"Fajr\":\"04:31\",\"Dhuhr\":\"11:41\",\"Asr\":\"14:58\",\"Sunset\":\"-\",\"Maghrib\":\"17:54\",\"Isha\":\"18:46\",\"Midnight\":\"-\"},\"date\":{\"timestamp\":1617667200,\"gregorian\":\"2021-04-06\",\"hijri\":\"1442-08-24\"}}],\"location\":{\"latitude\":-6.966667,\"longitude\":110.416664,\"elevation\":-9999.0,\"country\":\"\",\"country_code\":\"ID\",\"timezone\":\"Asia/Jakarta\",\"local_offset\":7.0},\"settings\":{\"timeformat\":\"HH:mm\",\"school\":\"Ithna Ashari\",\"juristic\":\"Shafii\",\"highlat\":\"None\",\"fajr_angle\":18.0,\"isha_angle\":17.0}}}";
        try {
            JSONObject rootJsonObject = new JSONObject(json);
            JSONObject resultJsonObject = rootJsonObject.getJSONObject("results");
            JSONArray dateTimeJsonArray = resultJsonObject.getJSONArray("datetime");
            JSONObject timeJsonObject = new JSONObject(dateTimeJsonArray.get(0).toString());
            JSONObject timeJson = new JSONObject(timeJsonObject.getString("times"));
            Log.d("TAG","Time json = "+timeJson);
        }catch (JSONException jsonException){
            Log.d("TAG","JSON Exception: "+jsonException.getLocalizedMessage());
        }

你试过JSONObject类吗?我试过了,但出现错误“JSONObject不能解析为类型”。这个答案正是你想要做的。