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的更多相关文章

  1. Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]

    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...

  2. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  3. 常用json解析库比较及选择 fastjson & gson

    一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...

  4. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  5. fastjson是阿里巴巴的开源JSON解析库

    fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...

  6. 来自阿里的 json 解析方案 fastjson

    说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...

  7. Tomjson - 一个"短小精悍"的 json 解析库

    Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...

  8. Tomjson - json 解析库

    Tomjson - 一个"短小精悍"的 json 解析库 Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把 ...

  9. 深入 Go 中各个高性能 JSON 解析库

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/535 其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对 ...

随机推荐

  1. Android 使用Post方式提交数据

    在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...

  2. Mac删除.svn文件

    find . -type d -name ".svn"|xargs rm -rf

  3. AndroidStudio项目提交(更新)到github最具体步骤

    在使用studio开发的项目过程中有时候我们想将项目公布到github上.曾经都是用一种比較麻烦的方式(cmd)进行提交.近期发现studio事实上是自带这样的功能的,最终能够摆脱命令行了. 由于自己 ...

  4. [Jobdu] 题目1455:珍惜现在,感恩生活

    题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...

  5. rabbitMQ之安装和配置(一)

    前言 erlang是一门面向并发的编程语言,流行的消息队列rabbitMQ是基于erlang环境运行的: 下载安装erlang语言环境 源码安装 # 从官网下载,在任何目录下,使用root权限 wge ...

  6. iconv 解决乱码问题

    [root@NGINX-APACHE-SVN pro]# file 林.txt 林.txt: ISO-8859 text, with no line terminators #在LINUX下显示乱码 ...

  7. 每日英语:Vender Assault Shines Ugly Light on China's Urban Enforcers

    The sudden death of a street vendor in Hunan province on Wednesday provoked outrage chengguan, or ur ...

  8. 每日英语:China Targets Big Pharma

    China unveiled a litany of bribery and misconduct allegations against GlaxoSmithKline GSK.LN -0.26% ...

  9. eclipse配置 嵌入式-基于linux

    Eclipse可以安装在各种操作系统.这里是安装到Ubuntu 10.10上.有两种方法实现安装,一是采用Ubuntu的软件源:二是从官方下载后解压. 1.  通过Ubuntu软件源安装 $ sudo ...

  10. Logstash日志字段拆分grok

    参考和测试网站:http://grokdebug.herokuapp.com 例如:test-39.dev.abc-inc.com Mon Apr 24 13:53:58 CST 2017 2017- ...