android-json,Android之JSON解析

做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSON格式,XML格式的数据在处理时相对比较繁琐,并且Android为我们提供了两个解析JSON对象的类:JSONObject与JSONArray这两个对象可以很好的满足我们的需求,JSONArray对象可以以数组的形式将数据返回到手机,JSONObject对象则可以以对象的形式将数据为我们封装好返回,手机接收都这两种数据后,通过解析,可以很方便的使用,大大的方便了我们的开发学习。

当然在使用JSONObject进行数据解析时,有两种方式,一种通过键值对的形式一个一个的取数据;另一种就是将JSONObject解析为具体的对象,然后通过对象的get、set方法进行数据的读取与操作,对于第一种方式,相信刚接触JSON解析的小童鞋都是这样干的,相对第一种方式,第二种方式更加的简单方便,下面我们就一起学习一下如何实现将JSONObject对象转化为具体的对象吧。

因为今天我们要探讨的是关于JSONObject的解析,所以我就通过一个简单的对象创建--对象封装--对象解析--对象操作,为大家介绍一下如何进行JSONObject向具体对象的转化。

首先我们的对象类(user):

public classUser {privateString id;privateString name;private String from;publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getFrom() {return from;

}public void setFrom(String from) {this.from = from;

}

@OverridepublicString toString() {return "User [id=" + id + ",name=" + name + ",from=" + from +"]";

}

}

这里我重写了对象的toString方法,这里一定要注意返回参数的格式:类名+'['+参数名+'='+参数+.....+']'

下面就是我们的对象创建与解析了:

1、JSONObject对象解析类:

//JSONObject解析类

public classJsonParseToObject {publicObject AllJsonParseToObject(String json, String packageAddress) {

Object parseObject= null;try{

parseObject=JSON.parseObject(json, Class.forName(packageAddress));

}catch(ClassNotFoundException e) {

e.printStackTrace();

}returnparseObject;

}

}

2、JSON对象的创建与解析:

public classMainActivity extends Activity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TextView text=(TextView) findViewById(R.id.hw);//将我们的对象属性封装都JSONObject中

JSONObject jo = newJSONObject();

jo.put("id", "16");

jo.put("name", "小了");

jo.put("from", "河南");

String str=jo.toString();

Toast.makeText(this, str, Toast.LENGTH_LONG).show();//对JSONObject对象进行解析

User u = (User) new JsonParseToObject().AllJsonParseToObject(jo.toString(), "com.example.jsontoobject.User");//判断JSONObject对象解析是否正确

if(u != null){

text.setText(jo.toString()+"id:"+u.getId()+";name:"+u.getName()+";from:"+u.getFrom());//进行对象操作

}else{

text.setText("User == null");

}

}

}

布局文件很简单就是一个文本框,用来显示解析后的数据。

4ed17dcc08d6e95eb0201feafe9e6767.png

好了到这里我们关于JSONObject解析的知识就为大家介绍完毕,没用过这种方式的小伙伴可以尝试一下,还是挺方便的,如果你有更好的方式,还望交流学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值