我是Android的新手。我想从Ticketmaster api收集数据并希望在ListView中显示。我正在使用Volley。 api的JSONview
如图所示,我想显示分类和场地的数据。但是在Model类中使用时,它没有显示。
JSONObjectRequest中的代码
请查看这些图片,并帮助我。如何从分类和场地获取数据?
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject("_embedded");
JSONArray array = obj.getJSONArray("events");
JSONObject obj2 = array.getJSONObject(i);
JSONArray array1 = obj2.getJSONArray("classifications");
JSONObject obj3 = array1.getJSONObject(0);
JSONObject obj4 = obj3.getJSONObject("segment");
Event event = new Event();
event.setName(obj2.getString("name"));
event.setClassifications(obj4.getString("name")); // here i want to get data from segment
// adding movie to movies array
eventList.add(event);
} catch (JSONException e) {
e.printStackTrace();
}
感谢!!!
答案 0 :(得分:1)
尝试使用此代码获取城市
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject("_embedded");
JSONArray array = obj.getJSONArray("events");
JSONObject obj2 = array.getJSONObject(i);
JSONObject obj = response.getJSONObject("_embedded");
JSONArray array1 = obj2.getJSONArray("venues");
JSONObject obj3 = array1.getJSONObject(0);
JSONObject obj4 = obj3.getJSONObject("city");
Event event = new Event();
event.setName(obj2.getString("name"));
// adding movie to movies array
eventList.add(event);
} catch (JSONException e) {
e.printStackTrace();
}
我还建议使用GSON来解析JSON
答案 1 :(得分:0)
请检查一下。
JSONObject object = new JSONObject(response.toString());
JSONObject embedded = object.getJSONObject("_embedded");
JSONArray eventsArray = embedded.getJSONArray("events");
for(int i = 0;i<eventsArray.length();i++){
JSONObject event = eventsArray.getJSONObject(i);
// Parse data from this event object
}
希望这有帮助。
答案 2 :(得分:0)
您可以将json数据转换为pojo模型类。它将帮助您轻松获得价值。这是你的模型pojo类的例子
public class ItemOption {
@SerializedName("embeded")
@Expose
private Embeded embeded;public Embeded getEmbeded() {
return embeded;
}
public void setEmbeded(Embeded embeded) {
this.embeded = embeded;
}
public class City {
@SerializedName("name")
@Expose
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Embeded {
@SerializedName("events")
@Expose
private List<Event> events = null;
public List<Event> getEvents() {
return events;
}
public void setEvents(List<Event> events) {
this.events = events;
}
}
public class Embeded_ {
@SerializedName("venue")
@Expose
private List<Venue> venue = null;
public List<Venue> getVenue() {
return venue;
}
public void setVenue(List<Venue> venue) {
this.venue = venue;
}
}
public class Event {
@SerializedName("embeded")
@Expose
private Embeded_ embeded;
public Embeded_ getEmbeded() {
return embeded;
}
public void setEmbeded(Embeded_ embeded) {
this.embeded = embeded;
}
}
public class Venue {
@SerializedName("city")
@Expose
private City city;
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
}}
然后
itemOption.getEmbeded().getEvents().get(0).getEmbeded().getVenue().get(0).getCity();
答案 3 :(得分:0)
尝试一次......
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject("_embedded");
Iterator iterator = Obj.keys();
//while(iterator.hasNext()){
String key = (String) iterator.next();
JSONObject issue = Obj.getJSONObject(key);
JSONArray array = obj.getJSONArray("events");
JSONObject obj2 = array.getJSONObject(i);
JSONObject obj = response.getJSONObject("_embedded");
JSONArray array1 = obj2.getJSONArray("venues");
JSONObject obj3 = array1.getJSONObject(0);
JSONObject obj4 = obj3.getJSONObject("city");
String key1 = (String) iterator.next();
JSONObject issue1 = Obj.getJSONObject(key1);
Event event = new Event();
event.setName(obj2.getString("name"));
// adding movie to movies array
eventList.add(event);
} catch (JSONException e) {
e.printStackTrace();
}