在MapJavaAndroid中获取地图
我有这个JSON响应。 我想获取datetime内的times数据在MapJavaAndroid中获取地图,java,android,json,Java,Android,Json,我有这个JSON响应。 我想获取datetime内的times数据 { "code":200, "status":"OK", "results":{ "datetime":[ { "times":{ "Imsak":"04:21",
{
"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不能解析为类型”。这个答案正是你想要做的。