Gson是谷歌官方推出的支持 JSON -- Java Object
相互转换的 Java序列化/反序列化
库
Gson解析步骤
1、添加依赖
implementation 'com.google.code.gson:gson:2.8.5'
2、获取需要解析的json数据格式,这里https://api.seniverse.com/v3/weather/now.json?key=SeAoWRtUCAR8wPv4A&location=beijing
其数据为
{"results":[{"location":{"id":"WX4FBXXFKE4F","name":"北京","country":"CN","path":"北京,北京,中国","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"晴","code":"0","temperature":"8"},"last_update":"2021-02-04T14:25:09+08:00"}]}
3、通过json在线工具,转为标准格式
{
"results":[
{
"location":{
"id":"WX4FBXXFKE4F",
"name":"北京",
"country":"CN",
"path":"北京,北京,中国",
"timezone":"Asia/Shanghai",
"timezone_offset":"+08:00"
},
"now":{
"text":"晴",
"code":"0",
"temperature":"8"
},
"last_update":"2021-02-04T13:20:00+08:00"
}
]
}
4、并通过json在线工具生成java实体类,后面的实体类略,把相应的实体类拷贝到程序中
import java.util.List;
public class JsonRootBean {
private List<Results> results;
public void setResults(List<Results> results) {
this.results = results;
}
public List<Results> getResults() {
return results;
}
}
5、通过OKhttp请求,响应回来的数据解析
private void parseData(String responseData) {
Gson gson=new Gson();
JsonRootBean rootBean=gson.fromJson(responseData,JsonRootBean.class);
List<Results> results =rootBean.getResults();
String name=results.get(0).getLocation().getName();
textView.setText(name);
}