Android关于网络获取数据和解析数据

本文分享Android中使用JSON和Gson进行数据解析的方法,包括导入依赖、网络请求、数据解析步骤及实例代码,适合Android初学者和进阶者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生活在移动互联网的世界的网络真的是让人离不开,现在很多的手机应用都是需要联网获取数据,那么问题来了,既然要从服务器上获取数据,你就要去解析数据,那么简单有效的解析方法就非常的重要了,本人也是在解析数据上尝到了滋味,感谢平哥的指导,在这里给大家分享Android关于Json和Gson解析,希望能给在学Android或者将要学Android的同学带来乐趣,接下来看看吧!


 第一步:要用json和gson解析数据呢,首先要向工程中导入架包,如图
图片
 
第二步:从网络上获取数据:下面这个静态的方法可以直接调用【这里只介绍get请求,post请求暂不介绍】

public static String sendGet(String path){
// path要执行的网络接口链接
String strResult = new String();
                //    strResult将要返回的网络数据 
try{ 
HttpClient httpClient = new DefaultHttpClient(); 
HttpGet httpGet = new HttpGet(path); 
HttpResponse httpResponse = httpClient.execute(httpGet); 
if(httpResponse.getStatusLine().getStatusCode()==200){ 
strResult = EntityUtils.toString(httpResponse.getEntity());
}catch(Exception e){
System.out.println(">>>"+e.getMessage());
return strResult;
}

注意:一定要在AndroidManifest.xml文件中注册联网权限哦
 <uses-permission android:name="android.permission.INTERNET"/>

第三步:判断获取的数据格式,从而确定要用何种请求方式
感悟分享:数据解析大多数情况是json和gson一起使用,解析非常方便,手动解析也可以,但是很麻烦。解析时的步骤一般是:新建数据的model【根据数据格式】,json与gson配合,gson与model结合,取出数据
        例一:比较简单的数据格式
        {"result“:    {"attentionCount":"0","collectCount":"0","email":"","fansCount":"0","head":""},"status":1}
        
        从格式上看:最外层共有两个大键,一个键里面存放了一个字符串,这个字符串里又是小键值对存在的方式,但是他返回的数据解析         出来是一条
        UserInfoModel.java        //注意:定义的字段名要与数据键名一致
/*
public class Result {
private String attentionCount;
private String collectCount;
private String email;
private String fansCount;
private String head;
public String getAttentionCount() {
return attentionCount;
}

public void setAttentionCount(String attentionCount) {
this.attentionCount = attentionCount;
}

public String getCollectCount() {
return collectCount;
}

public void setCollectCount(String collectCount) {
this.collectCount = collectCount;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getFansCount() {
return fansCount;
}

public void setFansCount(String fansCount) {
this.fansCount = fansCount;
}

public String getHead() {
return head;
}

public void setHead(String head) {
this.head = head;
}

*/
        解析文件的代码
/*
private UserInfoModel jieXiUserInfo(String result) {
UserInfoModel userInfoModel = new UserInfoModel();
try {
JSONObject jsonObject = new JSONObject(result);
int result_flag = jsonObject.getInt("status");
System.out.println("result_flag:" + result_flag);
if(result_flag == 1) {
String myMess = jsonObject.getString("result");
Gson mGson=new Gson();
UserInfoModel nInfoModel=mGson.fromJson(myMess,UserInfoModel.class);
System.out.println("xxxxx:"+myMess);
return userInfoModel;
}else {
return null;
}
} catch (JSONException e) {
e.printStackTrace();
return null;
}
}

*/
        例二:键值对存在和数组存在的
{"test":[{"name":"a","id":"2"},{"name":"a","id":"2"},{"name":"a","id":"2"},{"name":"a","id":"2"}]}

Person.java

public class Person{

private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}

/*
public static List<Person> getListPerson(String jsonString) {
     JSONObject jsonObject = new JSONObject(jsonString);
     String test = jsonObject.getInt("test"); 
 
     List<Person> list = new ArrayList<Person>(); 
     
Gson gson = new Gson();
     
 list = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());
     
 return list;//list就是返回的键值对集合
 
}
*/


学会分享,成就你我他,欢迎大家借鉴并提出意见或建议,我们共同进步


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值