android中用gson解析json

什么是JSON

1 JavaScript Object Notation

2 JSON数据是一系列键值对的集合

3 JSON在网络数据传输中应用广泛

4 JSON相对于XML,解析更方便

 

Json代码   收藏代码
  1. {  
  2.     "name":"Michael",  
  3.     "address":  
  4.     {  
  5.         "city":"Beijing",  
  6.         "street":"xxxRoad",  
  7.         "post":"200000"  
  8.     }  
  9. }  

 大括号就是一个JSON对象 中括号代表一个JSON对象的数组

 

JSON数据格式的特点

JSON vs XML

●JSON和XML可读性基本相同

●JSON和XML同样拥有丰富的解析手段

●JSON相对于XML体积更小

●JSON与JavaScript交互更方便

●JSON对数据描述性相对较差

 

使用Gson解析JSON数据

自带JsonReader 针对3.0 因此不建议使用

Gson 导入gson.jar

 

第一种方式(普通解析)

 

Java代码   收藏代码
  1. //首先生成一个JsonReader对象  
  2. JsonReader reader= new JsonReader(new StringReader(jsonData));  
  3. reader.beginArray();    //代表开始解析数组  
  4. while(reader.hasNext()){  
  5.     reader.beginObejct();   //代表开始解析对象  
  6.     while(reader.hasNext()){  
  7.         String tagName=reader.nextName();   //得到键  
  8.         reader.nextInt();   //得到值 同样还有nextString等  
  9.     }  
  10.     reader.endObject();  
  11. }  
  12. reader.endArray();  
 

第二种方式(解析一个JSON对象

 

Java代码   收藏代码
  1. //创建一个代表JSON对象的Bean  
  2. Gson gson=new Gson();  
  3. User user=gson.fromJson(jsonData,User.class);   //jsonData是一个Json对象  
 

第三种方式(JSON对象数组)

 

Java代码   收藏代码
  1. Type listType=new TypeToken<LinkedList<User>>(){}.getType();    //TypeToken是一个空的抽象类  
  2. Gson gson=new Gson();  
  3. LinkedList<User> users=gson.fromJson(jsonData,ListType);  //User对象会被保存到LinkedList中  
  4. //再进行遍历  
  5. for(Iterator iterator = users.iterator();iterator.hasNext();){  
  6.     User user=(User)iterator.next();  
  7.     //...doSomething  


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值