content: package com.alibaba.json.bvt.bug;
  
  import junit.framework.TestCase;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.JSONObject;
  import com.alibaba.fastjson.serializer.SerializerFeature;
  
  public class Issue243 extends TestCase {
  
      public void testSerialize() {
          RpcResponse response = new RpcResponse(2, new Object());
          // String json = JSON.toJSONString(response, SerializerFeature.WriteClassName); // codeA with WriteClassName,
          // requestId is not ending with 'L'
          String json = response.toCommandJson(); // codeA with WriteClassName, requestId is ending with 'L', and trouble
                                                  // other json framework
          System.out.println(json);
          
          String json2 = JSON.toJSONString(response, SerializerFeature.BeanToArray, SerializerFeature.WriteClassName, SerializerFeature.NotWriteRootClassName);
          System.out.println(json2);
      }
  
      public static class RpcResponse {
  
          private int        msgType     = 50;
          private long       requestId   = 0;
          private JSONObject details     = new JSONObject();
          private Object[]   yieldResult = new Object[1];
  
          public RpcResponse(){
  
          }
  
          public RpcResponse(long requestId, Object result){
              this.requestId = requestId;
              yieldResult[0] = result;
          }
  
          public int getMsgType() {
              return msgType;
          }
  
          public void setMsgType(int msgType) {
              this.msgType = msgType;
          }
  
          public long getRequestId() {
              return requestId;
          }
  
          public void setRequestId(long requestId) {
              this.requestId = requestId;
          }
  
          public JSONObject getDetails() {
              return details;
          }
  
          public void setDetails(JSONObject details) {
              this.details = details;
          }
  
          public Object[] getYieldResult() {
              return yieldResult;
          }
  
          public void setYieldResult(String[] yieldResult) {
              this.yieldResult = yieldResult;
          }
  
          protected Object[] fieldToArray() {
              return new Object[] { msgType, requestId, details, yieldResult };
          }
  
          public String toCommandJson() {
              return JSON.toJSONString(fieldToArray(), SerializerFeature.WriteClassName);
          }
      }
  }
  