android Gson解析

妖精的绣舞 提交于 2020-01-07 17:39:53

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Gson是Google提供的方便在json数据和Java对象之间转化的类库。
Gson 这是使用Gson的主要类,使用它时一般先创建一个Gson实例,然后调用toJson(Object)或者from(String,Class)方法进行转换。

package com.example.gson;  
  
import com.google.gson.annotations.Expose;  
import com.google.gson.annotations.SerializedName;  
  
import java.util.Date;  
  
/** 
 * Student 实体类 
 * Created by liu on 13-11-25. 
 */  
public class Student {  
    int age;  
    String name;  
    @Expose(serialize = true,deserialize = false)  
    @SerializedName("bir")  
    Date birthday;  
  
    public Student(int age, String name, Date birthday) {  
        this.age = age;  
        this.name = name;  
        this.birthday = birthday;  
    }  
  
    public Student(int age, String name) {  
        this.age = age;  
        this.name = name;  
    }  
  
  
    @Override  
    public String toString() {  
        if (birthday == null) {  
            return "{\"name\":" + name + ", \"age\":" + age + "}";  
        } else {  
            return "{\"name\":" + name + ", \"age\":" + age + ", \"birthday\":" + birthday.toString() + "}";  
        }  
  
    }  
}  

使用Gson前先创建Gson对象。

//首先创建Gson实例  
       Gson gson = new Gson();  
  1. toJson,fromJson 简单对象之间的转化
Student student = new Student(11, "liupan");  
      String jsonStr = gson.toJson(student, Student.class);  
      Log.e("Object to jsonStr", jsonStr);  
  
      Student student1 = gson.fromJson(jsonStr, Student.class);  
      Log.e("jsonStr to Object", student1.toString());  

2 List 类型和JSON字符串之间的转换

Student student11 = new Student(11, "liupan11");  
       Student student12 = new Student(12, "liupan12");  
       Student student13 = new Student(13, "liupan13");  
       Stack<Student> list = new Stack<Student>();  
       list.add(student11);  
       list.add(student12);  
       list.add(student13);  

toJson

String listJsonStr = gson.toJson(list);  
       Log.e("list to jsonStr", listJsonStr);  

fromJson

Stack<Student> list2 = gson.fromJson(listJsonStr, new TypeToken<Stack<Student>>() {  
     }.getType());  
     Log.e("jsonStr to list", list2.toString());  

注意和上边的简单类型略有不同。

参考 : https://code.google.com/p/google-gson/ http://blog.csdn.net/lk_blog/article/details/7685169

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!