使用Gson解析JSON数据,Gson下载,json数据解析,java解析json
1:Gson下载
1.1:maven仓库
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
1.2:Gradle下载
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
1.3:直接下载jar包
Gson jar下载:点这里下载jar包
2:解析json
不长篇大作了,除了耽搁时间没啥意思,人生苦短,直接上代码。
想详细了解的,请自行百度。
2.1待解析的json文件
{
"status": 0,
"message": "query ok",
"request_id": "16d6a60c-3ba2",
"result": {
"location": {
"lat": 36,
"lng": 117
},
"address": "中国山东"
}
"content":[
{"id":"25871","name":"济南"},
{"id":"4646","name":"济宁"},
]
}
2.2:创建Json.java类
public class Json {
private String message;
private Result result;
public String getMessage(){
return message;
}
public Result getResult(){
return result;
}
public static class Result{
private String address;
private List<Content> content;
public String getAddress(){
return address;
}
public List<Content> getContent(){
return content;
}
public static class Content{
}
}
}
2.3:解析json字符串
这里的 result 是你的json字符串
result = stringBuffer.toString();
Gson gson = new Gson();
Json json = (Json) gson.fromJson(result, Json.class);
System.out.println(json.getMessage());
System.out.println(json.getResult().getAddress());
3:解析json数组
3.1:json数组
[
{
"id": 3406,
"pid": 3400,
"city_code": "101220103",
"city_name": "肥东县",
"post_code": null,
"area_code": null,
"ctime": "2019-07-11 16:39:11"
},
{
"id": 3407,
"pid": 3400,
"city_code": "101220104",
"city_name": "肥西县",
"post_code": null,
"area_code": null,
"ctime": "2019-07-11 17:19:23"
}
]
3.2:CIty.java类
public class City {
private int id;
private int pid;
private String city_code;
private String city_name;
public int getId() {
return id;
}
public int getPid() {
return pid;
}
public String getCity_code() {
return city_code;
}
public String getCity_name() {
return city_name;
}
}
3.3:解析获取
这里的 themsg 指的是你要处理的json数据
//Json的解析类对象
JsonParser parser = new JsonParser();
//将JSON的String 转成一个JsonArray对象
JsonArray jsonArray = parser.parse(themsg).getAsJsonArray();
ArrayList<City> userBeanList = new ArrayList<>();
//加强for循环遍历JsonArray
for (JsonElement user : jsonArray) {
//使用GSON,直接转成Bean对象
City userBean = gson2.fromJson(user, City.class);
userBeanList.add(userBean);
}
System.out.println(userBeanList);
for(int i = 0;i<userBeanList.size();i++){
System.out.println(userBeanList.get(i).getCity_name());
}