fs-danaus
2023-12-15 c1439b337e09f8b145bc3a9da52ebe2df9b602f4
提交 | 用户 | 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