content: package com.alibaba.json.bvt.annotation;
  
  import java.io.IOException;
  import java.lang.reflect.Type;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.annotation.JSONType;
  import com.alibaba.fastjson.serializer.JSONSerializer;
  import com.alibaba.fastjson.serializer.ObjectSerializer;
  import com.alibaba.fastjson.serializer.SerializeWriter;
  
  import junit.framework.TestCase;
  
  public class CustomSerializerTest extends TestCase {
      public void test_0() throws Exception {
          Model model = new Model();
          model.id = 1001;
          String text = JSON.toJSONString(model);
          Assert.assertEquals("{\"ID\":1001}", text);
      }
      
      @JSONType(serializer=ModelSerializer.class)
      public static class Model {
          public int id;
      }
      
      public static class ModelSerializer implements ObjectSerializer {
  
          @Override
          public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                            int features) throws IOException {
              Model model = (Model) object;
              SerializeWriter out = serializer.getWriter();
              out.writeFieldValue('{', "ID", model.id);
              out.write('}');
          }
          
      }
  }
  