您现在的位置:首页 >> 手机开发 >> android项目 >> 内容

ANDROID--------使用GSON解析JSON文件--Java学习网

时间:2016-11-25 8:02:54

  核心提示:##使用gson解析json文件**json的格式有两种:****1. {}类型,及数据用{}包含;****2. []类型,即数据用[]包含;**下面用个例子,简单的介绍gson如何解析json,仅使...

##使用gson解析json文件

**json的格式有两种:**

**1. {}类型,及数据用{}包含;**

**2. []类型,即数据用[]包含;**



 
 下面用个例子,简单的介绍gson如何解析json,仅使用~

 先发两个json 内容 

1、最外层是{}

    {    
        "resp": "ok",
        "result": {
            "date": "2013-4-19 16:55:58",
            "focus": [
                {
                    "summary": "简介",
                    "title": "标题",
                    "url": "http://www.ceshi.com"
                },
                {
                    "summary": "简介22",
                    "title": "标题22",
                    "url": "http://www.ceshi22.com"
                }
            ],
            "items": [
                {
                    "id": "11",
                    "name": "名称",
                    "price": "88.88"
                },
                {
                    "id": "22",
                    "name": "名称22",
                    "price": "100"
                }
            ]
        }    
    }


2、外层是[]

    [    
        {
            "addr": "北京",
            "age": "22",
            "name": "zeng"
        },
        {
            "addr": "上海",
            "age": "20",
            "name": "zhang"
        },
        {
            "addr": "深圳",
            "age": "25",
            "name": "wang"
        }    
    ]

###**一、使用Gson,解析,关键的就是定义好JavaBean类对象**

1、***定义{}类型的JavaBean类***

Bean.java

    public class Bean {  //若实现Serializable接口,则不用写下面的SerializedName("字段名"),但成员变量名称必须与json中一样
    //  @SerializedName("resp")  
    //  private String respone;//假如变量命名与解析数据不同,则加上@SerializedName("")  
    private String resp;  
    private Result result;  
    //....下面省略 set ,get  

//resultBean类

Result.java
 

    public class Result {    
        private String date;  
        private List<FocusItem> focus;  
        private List<Item> items;  
    }
FocusItem.java

    public class FocusItem {        
        private String title;  
        private String summary;  
        private String url;  
    }
Item.java

    public class Item {            
        private String name;  
        private int id;  
        private float price; 
    } 

 2、***定义{}类型的JavaBean类***

  Info.java

    public class Info {    
        private String name;  
        private int age;  
        private String addr; 
    } 


###**二、解析代码,一个最外层是{}  一个是[]**


    private void parse() {  
        Gson gson = new Gson();  
        switch (type) { 
        //最外层是{},封装为一个对象
        case OBJ:  
            Bean fromJson = gson.fromJson(readContent, Bean.class);  
            System.out.println(fromJson.toString());  
            break;  
        //最外层是[],封装为一个数组对象
        case ARR:  
            Type type = new TypeToken<List<Info>>() {}.getType();  
            Object fromJson2 = gson.fromJson(readContent, type);  
            List<Info> list = (List<Info>) fromJson2; 
            break; 
        }
    }

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号