您的位置:首页 > Web前端 > JavaScript

使用GSON解析json数据

2017-01-03 11:34 381 查看
 

1. 想使用GSON来解析数据首先需要添加依赖库

compile 'com.google.code.gson:gson:2.8.0'
compile 'com.squareup.okhttp3:okhttp:3.5.0'

2.获取我们放在服务器上的json数据

private void sendRequestWithOkHttp() {
new Thread(new Runnable() {
@Override
public void run() {
try {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://192.168.31.254/get_data.json")
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
parseJSONWithGSON(responseData);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
3.开始解析数据

private void parseJSONWithGSON(String jsonData) {
Gson gson = new Gson();
//借助TypeToken将我们希望解析成的数据了类型传入fromJson()方法
List<China> chinaList = gson.fromJson(jsonData, new TypeToken<List<China>>() {}.getType());

for (China china : chinaList) {
Log.d(TAG, "id: " + china.getId());
Log.d(TAG, "name: " + china.getName());
}
}
我们需要解析的是一段JSON数组,需要使用List
如果只是解析一段JSON格式的数据,只需要

China china = gson.fromJson(jsonData,China.class);即可。

4. 别忘了添加连接网络权限

<uses-permission android:name="android.permission.INTERNET" />

附:

json数据:

[{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"天津"},

{"id":4,"name":"重庆"},{"id":5,"name":"香港"},{"id":6,"name":"澳门"},

{"id":7,"name":"台湾"},{"id":8,"name":"黑龙江"},{"id":9,"name":"吉林"},

{"id":10,"name":"辽宁"},{"id":11,"name":"内蒙古"},{"id":12,"name":"河北"},

{"id":13,"name":"河南"},{"id":14,"name":"山西"},{"id":15,"name":"山东"},

{"id":16,"name":"江苏"},{"id":17,"name":"浙江"},{"id":18,"name":"福建"},

{"id":19,"name":"江西"},{"id":20,"name":"安徽"},{"id":21,"name":"湖北"},

{"id":22,"name":"湖南"},{"id":23,"name":"广东"},{"id":24,"name":"广西"},

{"id":25,"name":"海南"},{"id":26,"name":"贵州"},{"id":27,"name":"云南"},

{"id":28,"name":"四川"},{"id":29,"name":"西藏"},{"id":30,"name":"陕西"},

{"id":31,"name":"宁夏"},{"id":32,"name":"甘肃"},{"id":33,"name":"青海"},

{"id":34,"name":"新疆"}]

China类

public class China {
private String id;
private String name;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSON Android开发