2017-06-02 122 views
-2

我是Android新手,正在开发具有服务器端功能的应用程序。我以JSON格式获得响应。从JSON字符串中获取json对象

我的回应如图所示。

我知道如何使用Volley解析json,但我不知道使用GSON来解析json。我的应用程序的以前的代码是由其他人编写的。现在我必须完成这个代码。但我不知道他是如何从JSON字符串获取数据的。我需要JSON数组在不同的活动。阵列响应:

image

下面是我的一些代码卡扣。

代码适配器活动一个

topicListAdapter = new TopicListAdapter(TopicActivity.this, 

       myCourseListMain. getCourseArrayList().get(Integer.parseInt(course_position)). 
       getTopicListMain().getTopicDetailsArrayList(), flag); 


     listAlltopics.setAdapter(topicListAdapter); 

中,我得到了主题

这里的列表是次活动列表适配器

lessionListAdapter = new LessionListAdapter(LessionActivity.this, 
       myCourseListMain. getCourseArrayList().  get(Integer.parseInt(course_position)). 
       getTopicListMain().getTopicDetailsArrayList().get(Integer.parseInt(topic_position)).getLessionArrayList(), flag); 

代码这段代码我得到的数组在第二次活动中的激情

现在我想要在t赫尔德活动,但我不知道如何得到它。 这里是我试过

lessionListAdapter = new DummyAdapter(DummyTopicList.this, 
       myCourseListMain  . getCourseArrayList().   get(Integer.parseInt(course_position)). 
       getTopicListMain() . getTopicDetailsArrayList() .get(Integer.parseInt(topic_position)). 
       getLessionLIstMain() .getLessionLIstDetailArrayList().get(Integer.parseInt(lession_position)). , flag); 

     listAlllessions.setAdapter(lessionListAdapter); 

这里有一些其他类这有助于你了解

public class MyCourseListMain { 

@SerializedName("data") 
private ArrayList<Course> courseArrayList; 

public ArrayList<Course> getCourseArrayList() { 
    return courseArrayList; 
} 

public void setCourseArrayList(ArrayList<Course> courseArrayList) { 
    this.courseArrayList = courseArrayList;  
} 
} 

类课程

public class Course { 


@SerializedName("img") 
private String img; 

@SerializedName("title") 
private String title; 

@SerializedName("institute_id") 
private String institute_id; 

@SerializedName("institute_name") 
private String institute_name; 

@SerializedName("expired") 
private String expired; 

@SerializedName("status") 
private String status; 

@SerializedName("subscribe_box") 
private String subscribe_box; 

@SerializedName("expire_on") 
private String expire_on; 

@SerializedName("item_id") 
private String item_id; 

@SerializedName("rated") 
private String rated; 

private TopicListMain topicListMain; 



public String getRated() { 
    return rated; 
} 

public void setRated(String rated) { 
    this.rated = rated; 
} 

public String getImg() { 
    return img; 
} 

public void setImg(String img) { 
    this.img = img; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

public String getInstitute_id() { 
    return institute_id; 
} 

public void setInstitute_id(String institute_id) { 
    this.institute_id = institute_id; 
} 

public String getInstitute_name() { 
    return institute_name; 
} 

public void setInstitute_name(String institute_name) { 
    this.institute_name = institute_name; 
} 

public String getExpired() { 
    return expired; 
} 

public void setExpired(String expired) { 
    this.expired = expired; 
} 

public String getStatus() { 
    return status; 
} 

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

public String getSubscribe_box() { 
    return subscribe_box; 
} 

public void setSubscribe_box(String subscribe_box) { 
    this.subscribe_box = subscribe_box; 
} 

public String getExpire_on() { 
    return expire_on; 
} 

public void setExpire_on(String expire_on) { 
    this.expire_on = expire_on; 
} 

public String getItem_id() { 
    return item_id; 
} 

public void setItem_id(String item_id) { 
    this.item_id = item_id; 
} 

public TopicListMain getTopicListMain() { 
    return topicListMain; 
} 

public void setTopicListMain(TopicListMain topicListMain) { 
    this.topicListMain = topicListMain; } } 

类topiclist_main

public class TopicListMain { 


@SerializedName("data") 
private ArrayList<TopicDetails> topicDetailsArrayList; 

public ArrayList<TopicDetails> getTopicDetailsArrayList() { 
    return topicDetailsArrayList; 
} 



public void setTopicDetailsArrayList(ArrayList<TopicDetails> topicDetailsArrayList) { 

    this.topicDetailsArrayList = topicDetailsArrayList; }} 

类话题的细节

public class TopicDetails 
{ 


@SerializedName("topic_id") 
private String topic_id; 

@SerializedName("title") 
private String title; 

@SerializedName("locked") 
private String locked; 

@SerializedName("lessons") 
private ArrayList<Lession> lessionArrayList; 


private LessionLIstMain lessionLIstMain; 

public LessionLIstMain getLessionLIstMain() { 
    return lessionLIstMain; 
} 

public void setLessionLIstMain(LessionLIstMain lessionLIstMain) { 
    this.lessionLIstMain = lessionLIstMain; 
} 

public String getTopic_id() { 
    return topic_id; 
} 

public void setTopic_id(String topic_id) { 
    this.topic_id = topic_id; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

public String getLocked() { 
    return locked; 
} 

public void setLocked(String locked) { 
    this.locked = locked; 
} 

public ArrayList<Lession> getLessionArrayList() { 
    return lessionArrayList; 
} 



public void setLessionArrayList(ArrayList<Lession> lessionArrayList) { 
    this.lessionArrayList = lessionArrayList; }} 
+0

你到底想要什么?你想通过Gson解析图像中的json吗? –

+0

这个问题包含很多乞讨,txtspk和拼写错误,并不代表我们希望在问题中看到很好的努力。如果您使用手机发布信息,当您在此发布信息时,是否可以使用笔记本电脑或PC? – halfer

+0

请阅读[在什么情况下我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案?](https://meta.stackoverflow。com/q/326569) - 总结是这不是解决志愿者问题的理想方法,而且可能对获得答案起反作用。请不要将这添加到您的问题。 – halfer

回答

0

https://github.com/google/gson 让你的对象具有相同的与您的数据,你got.And

YourObject val = new Gson().fromJson(new String(YourString.getBytes("ISO-8859-1"), 
"UTF-8"), YourObject.class); 
0

最后我得到通过下面的代码我的解决方案构建。

lessionListAdapter = new DummyAdapter(DummyTopicList.this, 
       myCourseListMain  . getCourseArrayList().   get(Integer.parseInt(course_position)). 
       getTopicListMain() . getTopicDetailsArrayList() .get(Integer.parseInt(topic_position)). 
       getLessionArrayList().get(Integer.parseInt((lession_position))).getLessionLIstDetailArrayList() , flag); 
       listAlllessions.setAdapter(lessionListAdapter); 

我也做了几个类来处理json数组。

public class SubLessionDetail { 
@SerializedName("lesson_id") 
private String lession_id; 

@SerializedName("title") 
private String title; 

@SerializedName("locked") 
private String locked; 


public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

public String getLocked() { 
    return locked; 
} 

public void setLocked(String locked) { 
    this.locked = locked; 
} 

public String getLession_id() { 

    return lession_id; 
} 

public void setLession_id(String lession_id) { 
    this.lession_id = lession_id; 
} 
}