Android:获取 Json 数据并解析
环境:Android
软件:OkHttp,Gson
软件:OkHttp,Gson
1.创建 JavaBean
根据 json 数据创建相应的 JavaBean
public class Bean {
private String date;
private List<StoriesBean> stories;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public List<StoriesBean> getStories() {
return stories;
}
public void setStories(List<StoriesBean> stories) {
this.stories = stories;
}
public static class StoriesBean {
private int type;
private int id;
private String ga_prefix;
private String title;
private boolean multipic;
private List<String> images;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGa_prefix() {
return ga_prefix;
}
public void setGa_prefix(String ga_prefix) {
this.ga_prefix = ga_prefix;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public boolean isMultipic() {
return multipic;
}
public void setMultipic(boolean multipic) {
this.multipic = multipic;
}
public List<String> getImages() {
return images;
}
public void setImages(List<String> images) {
this.images = images;
}
@Override
public String toString() {
return "标题='" + title + '\'' + "图片链接=" + images;
}
}
}
2.将 json 解析成 JavaBean
这里使用了 OkHttp 进行网络请求,并使用 Gson 对 json 数据进行解析。
public void parseJson(View view) {
OkHttpClient client = new OkHttpClient();
final Gson gson = new Gson();
Request request = new Request.Builder()
.url("http://xxx.xxx.com/file")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
ToastUtil.showToast(ParseJsonActivity.this, "parse Json 失败");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
ToastUtil.showToast(ParseJsonActivity.this, "Code:" + String.valueOf(response.code()));
final Bean bean = gson.fromJson(response.body().charStream(), Bean.class);
List<Bean.StoriesBean> stories = bean.getStories();
final StringBuilder stringBuilder = new StringBuilder();
for (Bean.StoriesBean storiesBean : stories) {
stringBuilder.append(storiesBean);
stringBuilder.append("\n\n\n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
tv_result.setText(stringBuilder.toString());
}
});
}
});
}