安卓Json解析

在安卓apk与后台服务通信时,我们一般有2中可以选择的数据格式xml和json. 而json作为一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,相比xml更轻量级,传输速度更快.在安卓中对json的解析我们一般有两种方式,一种是使用安卓自带api,一种是使用gson这个第三方的库.

一原生解析

系统自带的解析类都在 org.json这个包下面.常用的类有JSONObject,JSONStringer,JSONArray.

JSONObject:可以传入一段json字符串参数,也可以不传参数新建一个json对象.

常用方法 :put(key,value)为json对象添加键值

getType和optType:更具键值或者索引(Json数组)获取json对象的值,两者的区别在于,optType可以在没有值的时候

提供一个默认值

JSONArray::可以传入一段json字符串参数,也可以不传参数新建一个jsonarray对象.

常用api:1.put(key,value)为json对象添加键值

2.getType和optType:更具键值或者索引(Json数组)获取json对象的值,两者的区别在于,optType可以在没有值的时候提供一个默认值

JSONStringer:利用代码的形式来构建json文本

JSONStringer jsonText = new JSONStringer();    
    // 首先是{,对象开始。object和endObject必须配对使用    
    jsonText.object();    
    jsonText.key("phone");    
    // 键phone的值是数组。array和endArray必须配对使用    
    jsonText.array();    
    jsonText.value("123").value("345");    
    jsonText.endArray();    
        
    jsonText.key("name");    
    jsonText.value("zhangfei");    
    jsonText.key("age");    
    jsonText.value(100);    
        
    jsonText.key("address");    
    // 键address的值是对象    
    jsonText.object();    
    jsonText.key("country");    
    jsonText.value("china");    
    jsonText.key("province");    
    jsonText.value("jiangsu");    
    jsonText.endObject();    
        
    jsonText.key("isStudent");    
    jsonText.value(false);    
        
    // },对象结束    
    jsonText.endObject();    
二 Gson框架

使用如下:1.将字符串转化为javabean对象

Gson gson = new Gson();  
Student student = gson.fromJson(jsonString,Student.class);
使用gson时解析数据时,必须新建javabean对象,还要注意javabean的属性名字必须和json字符串的名字一样.
2.将对象转为json字符串
   Gson gson = new Gson();
   String string = gson.toJson(value);
关于更多gson的api请参考gson官网



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值