| AndBase开发框架 1.6

- 首页
- 相关页面
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

全部 类 命名空间 文件 函数 变量 枚举值 页
Public 成员函数 | 所有成员列表
com.google.gson.JsonSerializer< T >接口 参考
类 com.google.gson.JsonSerializer< T > 继承关系图:

## Public 成员函数
JsonElement | serialize (T src, Type typeOfSrc, JsonSerializationContext context)

## 详细描述

Interface representing a custom serializer for Json. You should write a custom serializer, if you are not happy with the default serialization done by Gson. You will also need to register this serializer through com.google.gson.GsonBuilder#registerTypeAdapter(Type, Object).

Let us look at example where defining a serializer will be useful. The

Id

class defined below has two fields:

clazz

and

value

.

    public class Id<T> {
      private final Class<T> clazz;
      private final long value;

      public Id(Class<T> clazz, long value) {
        this.clazz = clazz;
        this.value = value;
      }

      public long getValue() {
        return value;
      }
    }

The default serialization of

Id(com.foo.MyObject.class, 20L)

will be `{"clazz":com.foo.MyObject,"value":20}`. Suppose, you just want the output to be the value instead, which is

20

in this case. You can achieve that by writing a custom serializer:

    class IdSerializer implements JsonSerializer<Id>() {
      public JsonElement serialize(Id id, Type typeOfId, JsonSerializationContext context) {
        return new JsonPrimitive(id.getValue());
      }
    }

You will also need to register

IdSerializer

with Gson as follows:

    Gson gson = new GsonBuilder().registerTypeAdapter(Id.class, new IdSerializer()).create();

New applications should prefer TypeAdapter, whose streaming API is more efficient than this interface's tree API.

作者
  Inderjeet Singh
  Joel Leitch

参数

  <T> | type for which the serializer is being registered. It is possible that a serializer may be asked to serialize a specific generic type of the T.

## 成员函数说明

JsonElement com.google.gson.JsonSerializer< T >.serialize | ( | T | src,
|  | Type | typeOfSrc,
|  | JsonSerializationContext | context
| ) |  |

Gson invokes this call-back method during serialization when it encounters a field of the specified type.

In the implementation of this call-back method, you should consider invoking JsonSerializationContext#serialize(Object, Type) method to create JsonElements for any non-trivial field of the

src

object. However, you should never invoke it on the

src

object itself since that will cause an infinite loop (Gson will call your call-back method again).

参数

  src | the object that needs to be converted to Json.
  typeOfSrc | the actual type (fully genericized version) of the source object.

返回
  a JsonElement corresponding to the specified object.

该接口的文档由以下文件生成:

- src/com/google/gson/JsonSerializer.java