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 库的性能问题的,但是最近我对 ...
随机推荐
- Python 实int型和list相互转换 现把float型列表转换为int型列表 把列表中的数字由float转换为int型
第一种方法:使用map方法 >>> list = [, ] #带有float型的列表 >>> int_list = map(int,list) #使用map转换 & ...
- 11个常用的Linux命令
Linux命令行吸引了大多数Linux爱好者.一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务.今天为你解释下面几个命令:sudo.python.mtr.Ctrl+x+e.nl.s ...
- Atitit. 解释器模式框架选型 and应用场景attilax总结 oao
Atitit. 解释器模式框架选型 and应用场景attilax总结 oao 1. 解释器模式结构描述 1 2. 如何实现(简单的解释器模式,仅仅通过词法分析即可实现,而无需token流进行处理. 2 ...
- 异步FIFO的FPGA实现
本文大部分内容来自Clifford E. Cummings的<Simulation and Synthesis Techniques for Asynchronous FIFO Design&g ...
- Decoration4:分页展示
现在我们实现前台List的分页展示,这也是最基本的要求 先看现在的Rest数据格式,在spring的默认返回中,分页用到的元素都已经在page节点中返回了,只要在前台合理利用就足够了 { " ...
- Python 列表的操作
list基本操作 #coding=utf-8 #列表 string = 'list' #字符串->列表 list1 = list(string) # ['l', 'i', 's', 't'] # ...
- Windows Phone 解析手机型号DeviceStatus.DeviceName
问题的产生 在WP开发过程中难免遇到统计等相关的数据回收,那么当使用DeviceStatus.DeviceName这个来获取设备的名称时经常会得到类似下面的设备信息: 可以看出这样的数据很不直 ...
- 浅析StackTrace
我们在学习函数调用时,都知道每个函数都拥有自己的栈空间.一个函数被调用时,就创建一个新的栈空间.那么通过函数的嵌套调用最后就形成了一个函数调用堆栈.在c#中,使用StackTrace记录这个堆栈.你可 ...
- am335x gpio 控制的另一种方法
#include <linux/gpio.h> #include <linux/module.h> #include <linux/kernel.h> #in ...
- HDFS的实现机制
参考以上这张图,实际上我们客户端访问HDFS里面的内容时,并不需要真实知道内容存在于服务器的内容的真实路径,我们只需要知道一个虚拟路径就可以,比如最上面的hdfs://weekend110:9000/ ...