75、JSON 解析库---FastJson, Gson
JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交换传输。 易于人阅读和编写,同时也易于机器解析和生成。 基本结构:对象、数组。
Gson 的简介和特点: Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
快速、高效
代码量少、
简洁 面向对象 数据传递和解析方便
Gson 的基本用法:
基本用法:定义实体类
根据需要可以将JSON生成单个实体或列表实体集合
代码演示: 使用 Gson 解析 JsonObject
使用 Gson 解析 JsonArray
使用 Gson 将实体转为JSON数据
public class Tag {
private String count;
private String name;
private String title;
。。。。。。。。
}
public class Book {
private String title;
private String publisher;
private String summary;
private ArrayList<Tag> tags;
...........................
}
/**
* Gson的基本用法
* https://api.douban.com/v2/book/1220562
* @author Administrator
*/
public class MainActivity extends Activity {
private String url = "https://api.douban.com/v2/book/1220562"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData();
} 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
}
});
new Volley().newRequestQueue(getApplicationContext()).add(request);
} private void dealData(String result) {
Gson gson = new Gson();
Book book = gson.fromJson(result, Book.class);
Log.i("info", book.getTitle() + ":" + book.getPublisher() + ":"
+ book.getTags().size());
}
}
Fast-json 简介和特点: Fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。具有极快的性能,超越任其他的Java Json parser。
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
零依赖(没有依赖其它任何类库除了JDK)
支持注解、支持全类型序列化
Fast-json 的基本用法
基本用法: 定义实体类
根据需要可以将JSON生成单个实体或列表实体集合
代码演示: 使用 FastJson 解析 JsonObject
使用 FastJson 解析 JsonArray
使用 FastJson 将实体转为JSON数据
public class Tag {
private String title;
private String name;
private String count; public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
}
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;
}
}
/**
* Fast-Json的基本用法
* https://api.douban.com/v2/book/1220562
* @author Administrator
*/
public class MainActivity extends Activity {
private String url = "https://api.douban.com/v2/book/1220562"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData();
} 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);
} 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);
Log.i("info", book.getTitle() + ":" + book.getPublisher() + ":"
+ book.getTags().size());
}
}
75、JSON 解析库---FastJson, Gson的更多相关文章
- Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]
Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- 常用json解析库比较及选择 fastjson & gson
一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...
- fastjson是阿里巴巴的开源JSON解析库
fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...
- 来自阿里的 json 解析方案 fastjson
说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...
- Tomjson - 一个"短小精悍"的 json 解析库
Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...
- Tomjson - json 解析库
Tomjson - 一个"短小精悍"的 json 解析库 Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把 ...
- 深入 Go 中各个高性能 JSON 解析库
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/535 其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对 ...
随机推荐
- C#指南,重温基础,展望远方!(13)C#泛型
一.什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非常重要的新功能. 我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样.但我们没有办法,只能 ...
- 详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)
一.boost 智能指针 智能指针是利用RAII(Resource Acquisition Is Initialization:资源获取即初始化)来管理资源.关于RAII的讨论可以参考前面的文章.在使 ...
- C与C++中非常少犯的错误,犯了后却非常难找出的错误
1.continue,break类的错误(HDU1877): #include<iostream> using namespace std; int main() { int a,b,m, ...
- 博客已迁移至512z.com
本博客已迁移至http://blog.512z.com,此处今后不再更新
- atitit.软件gui按钮and面板---os区-----软链接,快捷方式
atitit.软件gui按钮and面板---os区-----软链接,快捷方式 1. 硬链接 1 2. 二.软链接(符号链接)LN 1 3. 三.删除链接 2 4. 区别 2 5. 参考 3 1. 硬链 ...
- NB 命令安装需似机(无图型化安装)
[root@ok ~]# virt-install -v -n 09ng04 -r 512 --vcpus=4 --location=/home/ISO/CentOS-6.7-x86_64-bin-D ...
- SVN 安装后报不是内部或外部命令
SVN安装后报不是内部或外部命令,也不是可运行的程序 解决方法:windows安装svn的时候默认是不安装 svn command line这个东西的,重新打开svn的安装exe,选择modify,将 ...
- ORACLE中DELETE和TRUNCATE的区别
语法 delete from AA truncate table AA 区别 1.delete from后面可以写条件(也就是where子句,delete from AA where aa.列名 = ...
- vue 单元测试
单元测试 配置和工具 任何兼容基于模块的构建系统都可以正常使用,但如果你需要一个具体的建议,可以使用Karma进行自动化测试.它有很多社区版的插件,包括对webpack和browserify的支持. ...
- 一款基于的jQuery仿苹果样式焦点图插件
这次我们要分享的这款jQuery焦点图非常特别,它的外观特别简单,但是又相当大气.焦点图的整体样式是仿苹果样式的,由于jQuery的运用,我们只要点击图片下方的缩略图即可达到图片切换的焦点图特效,这款 ...