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数据
1 public class Tag { 2 private String count; 3 private String name; 4 private String title; 6 。。。。。。。。 7 }
1 public class Book {
2 private String title;
3 private String publisher;
4 private String summary;
5 private ArrayList<Tag> tags;
6 ...........................
8 }
1 /** 2 * Gson的基本用法 3 * https://api.douban.com/v2/book/1220562 4 * @author Administrator 5 */ 6 public class MainActivity extends Activity { 7 private String url = "https://api.douban.com/v2/book/1220562"; 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 getData(); 14 } 15 16 private void getData() { 17 StringRequest request = new StringRequest(url, new Listener<String>() { 18 @Override 19 public void onResponse(String arg0) { 20 Log.i("info", arg0); 21 dealData(arg0); 22 } 23 }, new Response.ErrorListener() { 24 @Override 25 public void onErrorResponse(VolleyError arg0) { 26 // TODO Auto-generated method stub 27 } 28 }); 29 new Volley().newRequestQueue(getApplicationContext()).add(request); 30 } 31 32 private void dealData(String result) { 33 Gson gson = new Gson(); 34 Book book = gson.fromJson(result, Book.class); 35 Log.i("info", book.getTitle() + ":" + book.getPublisher() + ":" 36 + book.getTags().size()); 37 } 38 }
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数据
1 public class Tag { 2 private String title; 3 private String name; 4 private String count; 5 6 public String getTitle() { 7 return title; 8 } 10 public void setTitle(String title) { 11 this.title = title; 12 } 14 public String getName() { 15 return name; 16 } 18 public void setName(String name) { 19 this.name = name; 20 } 22 public String getCount() { 23 return count; 24 } 26 public void setCount(String count) { 27 this.count = count; 28 } 30 }
1 public class Book {
2 private String title;
3 private String publisher;
4 private String summary;
5 private ArrayList<Tag> tags;
6
7 public String getTitle() {
8 return title;
9 }
11 public void setTitle(String title) {
12 this.title = title;
13 }
15 public String getPublisher() {
16 return publisher;
17 }
19 public void setPublisher(String publisher) {
20 this.publisher = publisher;
21 }
23 public String getSummary() {
24 return summary;
25 }
27 public void setSummary(String summary) {
28 this.summary = summary;
29 }
31 public ArrayList<Tag> getTags() {
32 return tags;
33 }
35 public void setTags(ArrayList<Tag> tags) {
36 this.tags = tags;
37 }
39 }
1 /** 2 * Fast-Json的基本用法 3 * https://api.douban.com/v2/book/1220562 4 * @author Administrator 5 */ 6 public class MainActivity extends Activity { 7 private String url = "https://api.douban.com/v2/book/1220562"; 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 getData(); 14 } 15 16 private void getData() { 17 StringRequest request = new StringRequest(url, new Listener<String>() { 18 @Override 19 public void onResponse(String arg0) { 20 Log.i("info", arg0); 21 dealData(arg0); 22 } 23 }, new Response.ErrorListener() { 24 @Override 25 public void onErrorResponse(VolleyError arg0) { 26 // TODO Auto-generated method stub 27 } 28 }); 29 Volley.newRequestQueue(getApplicationContext()).add(request); 30 } 31 32 private void dealData(String result) { 33 Book book = JSON.parseObject(result, Book.class); 34 List<Book> books = JSON.parseObject(result, 35 new TypeReference<List<Book>>() { 36 }); 37 Book book1 = new Book(); 38 book1.setTitle("biaoti"); 39 Book book2 = new Book(); 40 book2.setTitle("biaoti"); 41 Book book3 = new Book(); 42 book2.setTitle("biaoti"); 43 44 List<Book> list = new ArrayList<Book>(); 45 list.add(book1); 46 list.add(book2); 47 list.add(book3); 48 JSON.toJSON(list); 49 Log.i("info", book.getTitle() + ":" + book.getPublisher() + ":" 50 + book.getTags().size()); 51 } 52 }