这是我的JSON数据
{
"success": "1",
"results": [
{
"type": "1.popmusic",
"posts": [
{
"music": "1.AAA"
},
{
"music": "2.BBB"
}
]
}
]
}
我需要点击某种音乐,例如我点击我的列表视图中的“popmusic”然后,意图用新的活动来播放音乐中的音乐,来自我的json它必须显示“1.AAA”和“2。 BBB“在列表视图上。
我无法从我的json获得“帖子”。我怎么能得到它。
这是Blog1 Class
public class Blog1 {
String success;
List<Post> results;
public List<Post> getResults() {
return results;
}
}
这是Post1 class
public class Post1 {
String name;
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
// Getter and Setter
这是main class
private void showData(String jsonString) {
Gson gson = new Gson();
Blog1 blog = gson.fromJson(jsonString, Blog1.class);
List<Post> results = blog.getResults();
mAdapter = new CustomAdapter1(this, results);
mListView.setAdapter(mAdapter);
}
答案 0 :(得分:0)
您可以使用in build android JSON库
参考How to get json array values in android?
参考android get json array nested in array
首先你需要得到结果
JSONArray json2 = json.getJSONArray("results");
然后在里面循环(我假设第一个元素为0)
JSONObject json3 = json2.getJSONObject(0);
然后你需要发帖子
JSONArray json4 = json3.getJSONArray("posts");
然后获得你可以循环json4
---编辑---
我看到你正在使用Gson,但你的类结构应该是
public class Blog {
String success;
List<Result> results;
public List<Result> getResults() {
return results;
}
}
public class Result {
String type;
public String getType() {
return type;
}
List<Post> posts;
public List<Post> getPosts() {
return posts;
}
}
public class Post {
String music;
public String getMusic() {
return music;
}
}
在您的主要代码中
Blog blog = gson.fromJson(jsonString, Blog.class);
//I am assuming 0th item for both
blog.getResults().get(0).getPosts().get(0).getMusic();
如果您正在构建自定义适配器,那么假设您要显示一个博客条目的所有帖子,那么您可以获得所有帖子
List<Post> posts = blog.getResults().get(0).getPosts()
将帖子传递给自定义适配器。
如果您有两个适配器,那么<strong> blog.getResults()用于第一个适配器,然后单击该适配器的项目 results.get(itemindex).getPosts()第二个适配器
答案 1 :(得分:0)
你的JSON
{
"success": "1",
"results": [
{
"type": "1.popmusic",
"posts": [
{
"music": "1.AAA"
},
{
"music": "2.BBB"
}
]
}
]
}
实际上是映射到
public class Response {
private String success;
private List<Result> results;
//getter, setter
}
public class Result {
private String type;
private List<Post> posts;
//getter, setter
}
public class Post {
private String music;
//getter, setter
}
然后你可以让GSON从中获得Result
。