提交 | 用户 | age
|
a6a76f
|
1 |
package com.yc.action.grid; |
F |
2 |
import java.lang.reflect.Type; |
|
3 |
import com.google.gson.JsonDeserializationContext; |
|
4 |
import com.google.gson.JsonDeserializer; |
|
5 |
import com.google.gson.JsonElement; |
|
6 |
import com.google.gson.JsonParseException; |
|
7 |
import com.google.gson.JsonPrimitive; |
|
8 |
import com.google.gson.JsonSerializationContext; |
|
9 |
import com.google.gson.JsonSerializer; |
|
10 |
/** |
|
11 |
* 自定义序列化和反序列化 |
|
12 |
* @author Ickes |
|
13 |
* |
|
14 |
*/ |
|
15 |
public class EntrySerializer implements JsonSerializer<String>,JsonDeserializer<String>{ |
|
16 |
/** |
|
17 |
* 序列化时调用 |
|
18 |
*/ |
|
19 |
@Override |
|
20 |
public JsonElement serialize(String entry, Type typeOfSrc, |
|
21 |
JsonSerializationContext context) { |
|
22 |
if(entry == null){ |
|
23 |
return null; |
|
24 |
} |
|
25 |
/* |
|
26 |
* 看下JsonElement类的实现类, |
|
27 |
* 他可以将entry转换为不同的类型例如数组,对象; |
|
28 |
* 我这里的需求是将firtName和lastName转换为firtName-lastName的格式,用下面这个实现类 |
|
29 |
*/ |
|
30 |
JsonElement json = new JsonPrimitive((entry!=null&&!"".equalsIgnoreCase(entry))?entry.replaceAll("\\s+$", ""):""); |
|
31 |
return json; |
|
32 |
} |
|
33 |
|
|
34 |
/** |
|
35 |
* 反序列化时调用 |
|
36 |
*/ |
|
37 |
@Override |
|
38 |
public String deserialize(JsonElement json, Type typeOfT, |
|
39 |
JsonDeserializationContext context) throws JsonParseException { |
|
40 |
String[] names=json.toString().split("-"); |
|
41 |
String firstName=names[0]; |
|
42 |
String lastName=names[1]; |
|
43 |
// Entry entry = new Entry(firstName, lastName); |
|
44 |
return ""; |
|
45 |
} |
|
46 |
|
|
47 |
|
|
48 |
} |