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);
}
}
}