com.supermap.services.rest.encoders

类 JsonEncoder

  • 所有已实现的接口:
    javax.ws.rs.ext.MessageBodyWriter
    直接已知子类:
    GeoJSONEncoder, JsonpEncoder, RJsonEncoder


    @Provider
    public class JsonEncoder
    extends Encoder
    implements javax.ws.rs.ext.MessageBodyWriter
    

    Java 对象的 JSON 序列化器。

    负责将一个 Java 对象序列化成一个 JSON 字符串。

    • 构造器概要

      构造器 
      构造器和说明
      JsonEncoder()
      构造函数。
    • 方法概要

      方法 
      限定符和类型 方法和说明
      protected java.util.List<MediaType> createSupportedMediaTypes()
      创建支持的媒体类型,这里是 JSON 类型。
      long getSize(java.lang.Object o, java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
      确定要写入的对象序列化之后的长度。
      protected boolean isindent()
      是否按缩进的格式来产生字符串。
      boolean isWriteable(java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
      判断本表述生成器是否支持指定媒体类型的表述。
      protected java.lang.Object toFormatedObject(java.lang.Object obj)
      将一个对象转换成 JSONObject 类型的对象。
      protected java.lang.String toFormatedString(java.lang.Object resultObj)
      将规范对象如:JSONObject、JSONArray 转换成符合一定规范的字符串,如 JSON、JSONP 等。
      Representation toRepresentation(MediaType mediaType, java.lang.Object resourceObj)
      将一个 Java 对象序列化为表述。
      void writeTo(java.lang.Object o, java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap httpHeaders, java.io.OutputStream entityStream)
      生成指定媒体类型的 HTTP 响应。
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • JsonEncoder

        public JsonEncoder()
        

        构造函数。

        初始化 JsonEncoder,构建一个 JsonEncoder 对象。

    • 方法详细资料

      • isWriteable

        public boolean isWriteable(java.lang.Class type,
                          java.lang.reflect.Type genericType,
                          java.lang.annotation.Annotation[] annotations,
                          javax.ws.rs.core.MediaType mediaType)
        

        判断本表述生成器是否支持指定媒体类型的表述。

        指定者:
        isWriteable 在接口中 javax.ws.rs.ext.MessageBodyWriter
        参数:
        type - 要生成表述的对象类型。
        genericType - 指定的对象类型。
        annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。
        mediaType - 预期响应的媒体类型。
        返回:
        如果本表述生成器支持指定的媒体类型,则返回 true,否则返回 false。
      • getSize

        public long getSize(java.lang.Object o,
                   java.lang.Class type,
                   java.lang.reflect.Type genericType,
                   java.lang.annotation.Annotation[] annotations,
                   javax.ws.rs.core.MediaType mediaType)
        

        确定要写入的对象序列化之后的长度。在生成 HTTP 响应之前被调用。

        指定者:
        getSize 在接口中 javax.ws.rs.ext.MessageBodyWriter
        参数:
        o - 要生成表述的对象。
        type - 要生成表述的对象对应的 Java 类。
        genericType - 要生成表述的对象的类型。
        annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。
        mediaType - HTTP 请求体的媒体类型。
        返回:
        要写入的对象的长度。
      • writeTo

        public void writeTo(java.lang.Object o,
                   java.lang.Class type,
                   java.lang.reflect.Type genericType,
                   java.lang.annotation.Annotation[] annotations,
                   javax.ws.rs.core.MediaType mediaType,
                   javax.ws.rs.core.MultivaluedMap httpHeaders,
                   java.io.OutputStream entityStream)
                     throws java.io.IOException,
                            javax.ws.rs.WebApplicationException
        

        生成指定媒体类型的 HTTP 响应。

        指定者:
        writeTo 在接口中 javax.ws.rs.ext.MessageBodyWriter
        参数:
        o - 要生成表述的对象。
        type - 要生成表述的对象对应的 Java 类。
        genericType - 要生成表述的对象的类型。
        annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。
        mediaType - HTTP 响应的媒体类型。
        httpHeaders - HTTP 响应的消息头。
        entityStream - HTTP 响应。
        抛出:
        java.io.IOException - 当读写过程出错时。
        javax.ws.rs.WebApplicationException - 当 HTTP 响应出错时。
      • createSupportedMediaTypes

        protected java.util.List<MediaType> createSupportedMediaTypes()
        

        创建支持的媒体类型,这里是 JSON 类型。

        用户扩展一个 Encoder 时,需要指定该 Encoder 支持将格式化的对象转换为什么媒体类型的表述。

        指定者:
        createSupportedMediaTypes 在类中 Encoder
        返回:
        媒体类型列表。
      • toRepresentation

        public Representation toRepresentation(MediaType mediaType,
                                      java.lang.Object resourceObj)
        

        将一个 Java 对象序列化为表述。

        指定者:
        toRepresentation 在类中 Encoder
        参数:
        mediaType - 表述的类型。
        resourceObj - 欲序列化为表述的 Java 对象。
        返回:
        resourceObj 对象的 JSON 格式表述。
      • toFormatedObject

        protected java.lang.Object toFormatedObject(java.lang.Object obj)
        

        将一个对象转换成 JSONObject 类型的对象。如果传入的参数是基本类型则不予转换,返回null 。

        参数:
        obj - 要转换的 Java 对象。
        返回:
        转换后的 JSONObject 对象。
      • toFormatedString

        protected java.lang.String toFormatedString(java.lang.Object resultObj)
        

        将规范对象如:JSONObject、JSONArray 转换成符合一定规范的字符串,如 JSON、JSONP 等。

        参数:
        resultObj - 要转换的对象。
        返回:
        结果字符串。
      • isindent

        protected boolean isindent()
        

        是否按缩进的格式来产生字符串。

        返回:
        如果按缩进的格式来产生字符串则返回 true,否则返回 false。