第三方库-Gson和Fast-json

来源:互联网 发布:mac锁屏时钟 编辑:程序博客网 时间:2024/04/30 10:34

前言 : 团队精神到底是什么?互相帮助,互相袒护就算是吗?也有人这么认为吧。我是认为那根本只是唬人!应该是每个人抱着必死决心做自己的事,“我做好自己的部分”“接下来轮到你”“做不好的话我就揍扁你”要是有这种决心才能算是团队精神吧!

项目中访问网络处理数据时大多数使用的是JSON数据格式,还有少部分使用的XML数据格式。这里只讲JSON格式数据

1.JSON的简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。用于数据交换传输,通用与PHP,Java,C++,C#,Python等编程语言数据交换传输。
易于人阅读和读写,同时也易于机器解析和生成。
基本结构:对象,数组。

2.Gson的简介和特点

Gson是Google官方推出的,用来在Java对象和JSON数据之间映射的Java类库。可以讲一个Json字符串转成一个Java对象,或者反过来都可以。

*快速 , 高效
*代码量少 , 简洁
*面向对象
*数据传递和解析方便

3.Gson的使用

需要导入访问网络的框架Volley和Gson,另外需要添加访问网络权限

1.使用Volley框架访问网络获取json格式数据

private void getData() {        StringRequest request = new StringRequest(url, new Listener<String>() {            @Override            public void onResponse(String arg0) {                Log.i("info", arg0);                dealData(arg0);            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError arg0) {            }        });        new Volley().newRequestQueue(getApplicationContext()).add(request);    }

2.需要些java bean 用来解析数据用

public class Book {    private String title;    private String publisher;    private String summary;    private ArrayList<Tag> tags;    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    public String getPublisher() {        return publisher;    }    public void setPublisher(String publisher) {        this.publisher = publisher;    }    public String getSummary() {        return summary;    }    public void setSummary(String summary) {        this.summary = summary;    }    public ArrayList<Tag> getTags() {        return tags;    }    public void setTags(ArrayList<Tag> tags) {        this.tags = tags;    }}

3.使用Gson解析数据
可以将数据解析成JsonObject,JsonArray,实体类JSON数据

    private void dealData(String result) {        Gson gson = new Gson();        Book book = gson.fromJson(result, Book.class);        Toast.makeText(this, book.getTitle() + " : " + book.getPublisher() + " : "                + book.getTags().size(), Toast.LENGTH_LONG).show();    }

Fastjson是一个性能很好的java语言实现JSON解析器和生成器,来之阿里巴巴的工程师开发,具有极快的性能,超越任何其他的Java Json parser

快速FAST

强大(支持普通JDK类包括任意Java Bean Class,Collection,Map,Date或enum)

零依赖(没有依赖其他任何类库除了JDK)

支持注解,支持全类型序列化

4.Fast-json的使用

需要导入访问网络的框架Volley和Fast-json,另外需要添加访问网络权限

1.使用Volley框架访问网络获取json格式数据

private void getData() {        StringRequest request = new StringRequest(url, new Listener<String>() {            @Override            public void onResponse(String arg0) {                Log.i("info", arg0);                dealData(arg0);            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError arg0) {                // TODO Auto-generated method stub            }        });        Volley.newRequestQueue(getApplicationContext()).add(request);    }

2.需要些java bean 用来解析数据用

public class Book {    private String title;    private String publisher;    private String summary;    private ArrayList<Tag> tags;    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    public String getPublisher() {        return publisher;    }    public void setPublisher(String publisher) {        this.publisher = publisher;    }    public String getSummary() {        return summary;    }    public void setSummary(String summary) {        this.summary = summary;    }    public ArrayList<Tag> getTags() {        return tags;    }    public void setTags(ArrayList<Tag> tags) {        this.tags = tags;    }}

3.使用fast-json解析数据
可以将数据解析成JsonObject,JsonArray,实体类JSON数据

private void dealData(String result) {        Book book = JSON.parseObject(result, Book.class);        List<Book> books = JSON.parseObject(result,                new TypeReference<List<Book>>() {                });        Book book1 = new Book();        book1.setTitle("biaoti");        Book book2 = new Book();        book2.setTitle("biaoti");        Book book3 = new Book();        book2.setTitle("biaoti");        List<Book> list = new ArrayList<Book>();        list.add(book1);        list.add(book2);        list.add(book3);        JSON.toJSON(list);        Toast.makeText(this, book.getTitle() + " : " + book.getPublisher() + " : "                + book.getTags().size(), Toast.LENGTH_LONG).show();    }

以上数据只做了简单的处理,但是在项目已经够使用了。

源码 ##下载

1 0
原创粉丝点击