Gson介绍和使用

来源:互联网 发布:2016年光棍节淘宝 编辑:程序博客网 时间:2024/06/08 15:25

一、什么是JSON

   JSON(JavaScript Object Notation)是JavaScript对象表示法,用于存储和交换文本信息的语法,类似XML,但比XML更小、更灵活。它是独立的语言,具有自我描述性,所以更易理解。   JSON使用JavaScript语法来描述数据对象,但SJON仍然独立于语言平台。JSON解析器和JSON库支持许多不同的编程语言。

二、Gson

    java json对象的处理,目前有好一些类库,比较著名的有Jackson,Fastjson等,而Gson是google自己写的一个Java对象与JSON相互转化的工具包.它轻巧简便,易于使用,而且有很完备的文档可供查询,它是一个开源项目,其网址为 http://code.google.com/p/google-gson。    这里介绍一下google封装的类库gson。    gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要    使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。    1)toJason()方法将对象转换成Json字符串    2)fromJson()方法来实现从Json相关对象到java实体的方法。


三、导入Jar包

    1、下载gson-2.2.4.jar


四、示例代码

 Json_all.java

package json;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class Json_all {/** * Gson 谷歌的一个java 和 Json 解析器 * toJson()   : Java 转换成 Json * fromJson() : Json 转换成 Java */public static void main(String[] args) {Gson gson = new Gson();// 基本数据转换int[] numbers = { 1, 1, 2, 3, 5, 8, 13 };String[] days = { "Mon", "Tue", "Wed" };String numbersJson = gson.toJson(numbers);String daysJson = gson.toJson(days);int[] fibonacci = gson.fromJson(numbersJson, int[].class);String[] weekDays = gson.fromJson(daysJson, String[].class);// map <==> jsonMap<String, String> colours = new HashMap<String, String>();colours.put("black", "黑色");colours.put("red", "红色");colours.put("blue", "蓝色");String coloursJson = gson.toJson(colours); // Type type = new TypeToken< Map<String, String> >() {}.getType(); // 申明类型 Map<String, String> Map<String, String> map = gson.fromJson(coloursJson, type);// 单个对象 转换Student stu = new Student("leovany", "China", new Date(2000, 1, 1));String stuJson = gson.toJson(stu);Student student = gson.fromJson(stuJson, Student.class);// 对象集合 转换List<Student> students = new ArrayList<Student>();Student a = new Student("Alice", "Apple St", new Date(2014, 10, 1));Student b = new Student("Bob", "Banana St", null);students.add(a);students.add(b);String studentsJson = gson.toJson(students);Type type2 = new TypeToken<List<Student>>() {}.getType(); // 申明类型 List<Student>List<Student> studentList = gson.fromJson(studentsJson, type2);}}

Student.java

package json;import java.util.Date;public class Student {private String name ;private String address;private Date dateOfBirth;public Student(String name, String address, Date dateOfBirth) {        this.name = name;        this.address = address;        this.dateOfBirth = dateOfBirth;    }public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public Date getDateOfBirth() {return dateOfBirth;}public void setDateOfBirth(Date dateOfBirth) {this.dateOfBirth = dateOfBirth;}}


参考:http://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html

0 0
原创粉丝点击