GSON是Google开发的Java API,用于转换Java对象和Json对象。
转载自:http://www.importnew.com/16630.html
另外,以注解方式序列化与反序列化http://blog.csdn.net/lk_blog/article/details/7685169
简单的例子
package com.javacreed.examples.gson.part1;
public class Book {
private String[] authors;
private String isbn10;
private String isbn13;
private String title;
// Methods removed for brevity
}
普通的gson.toGson(json)可能会出现如下:
{
"title": "Java Puzzlers: Traps, Pitfalls, and Corner Cases",
"isbn-10": "032133678X",
"isbn-13": "978-0321336781",
"authors": [
"Joshua Bloch",
"Neal Gafter"
]
}
为了避免可用两种方法:
1.使用注解。Gson 注解示例
2.使用JsonSerialiser 。Serialiser示例,如下:
package com.javacreed.examples.gson.part1;
import java.lang.reflect.Type;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
public class BookSerialiser implements JsonSerializer {
@Override
public JsonElement serialize(final Book book, final Type typeOfSrc, final JsonSerializationContext context) {
final JsonObject jsonObject = new JsonObject();
//The serialisation code is missing
return jsonObject;
}
}
JsonSerializer 接口要求类型是将要进行序列化的对象类型。在这个例子中,我们要序列化的 Java 对象是 Book。serialize()方法的返回类型必须是一个 JsonElement (Java 文档)类型的实例。下面列出了JsonElement 四种具体实现类型:
- JsonPrimitive (Java Doc) —— 例如一个字符串或整型
- JsonObject (Java Doc) —— 一个以 JsonElement 名字(类型为 String)作为索引的集合。类似于 Map