您的位置:首页 > 理论基础 > 计算机网络

OKhttp封装 Json数据解析

2017-12-28 11:46 363 查看
简单写了个网络请求工具demo,方便以后新项目有网络需求快速搭建网络框架:

1.添加jar依赖:(可下载demo,从项目中拿,上传的是program,新建个项目导入即可)



配置build.gradle





3.AndroidManifest.xml配置网络权限

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


4.之后就可有用了,有个简单的post请求范例,图片上传的工具里面有方法:

1)确保接口能用(我这个接口只是简单在我的服务器返回json数据);

2)封装好数据类型,以便json解析工具解析()

//数据类型封装
/**
* Created by lilin on 2016/12/24.
* func :
*/
public class BuzProfession {
private String name;
private String value;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}


//参数初始化
private List<BuzProfession>  buzProfession = new ArrayList<>();
private static final String url = "http://113.105.131.249:27017/app/dict/getDepartments";


//请求网路
private void getInternetData() {
HashMap map = new HashMap<String, Object>();
map.put("type", 34);
HttpHelper.post(url, map, new RequestListener() {
@Override
public void onResponse(String response) {
Log.e("nxm", response);
String code = JsonUtils.getFieldValue(response, "code");
String codeResponse = JsonUtils.getFieldValue(response, "data");
if ("200".equals(code)) {
//请求成功
parsejson(codeResponse);
} else {
//清楚错误
}
}

@Override
public void onError(Request request, Exception e) {
//请求异常
Log.e("nxm", e.toString());
}
});
}


//解析数据
private void parsejson(String codeResponse) {
buzProfession = (List<BuzProfession>) JsonUtils.parseJsonToList(codeResponse, new TypeToken<List<BuzProfession>>() {
}.getType());
if (buzProfession.size() > 0) {
textView.setText(buzProfession.get(0).getName());
}
}


模拟的返回数据:(连接百度网站是有数据,证明连接成功,然后用模拟的数据模拟解析过程)



{“code”:”200”,”data”:[{“name”:”外科”,”id”:55,”dictId”:3,”value”:”1”},{“name”:”内科”,”id”:56,”dictId”:3,”value”:”2”},{“name”:”儿科”,”id”:57,”dictId”:3,”value”:”3”},{“name”:”妇产科”,”id”:58,”dictId”:3,”value”:”4”},{“name”:”精神科”,”id”:59,”dictId”:3,”value”:”5”},{“name”:”口腔科”,”id”:60,”dictId”:3,”value”:”6”},{“name”:”耳鼻喉科”,”id”:61,”dictId”:3,”value”:”7”}]}

资源下载地址:

http://download.csdn.net/download/qq_38355313/10177551
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐