ing
This commit is contained in:
parent
48490696a4
commit
4dcc550cb2
|
@ -1,7 +1,5 @@
|
||||||
package com.loafle.commons.rpc.protocol.json;
|
package com.loafle.commons.rpc.protocol.json;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.codehaus.jackson.annotate.JsonProperty;
|
import org.codehaus.jackson.annotate.JsonProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,13 +9,13 @@ public class JSONClientRequest {
|
||||||
@JsonProperty("jsonrpc")
|
@JsonProperty("jsonrpc")
|
||||||
public String version;
|
public String version;
|
||||||
public String method;
|
public String method;
|
||||||
public Object[] params;
|
public Object params;
|
||||||
public Object id;
|
public Object id;
|
||||||
|
|
||||||
JSONClientRequest(String version, String method, Object[] params, Object id) {
|
JSONClientRequest(String version, String method, Object params, Object id) {
|
||||||
this.version = version;
|
this.version = version;
|
||||||
this.method = method;
|
this.method = method;
|
||||||
this.params = params;
|
this.params = params;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.loafle.commons.rpc.protocol.json;
|
package com.loafle.commons.rpc.protocol.json;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.loafle.commons.rpc.RPCException;
|
import com.loafle.commons.rpc.RPCException;
|
||||||
import com.loafle.commons.rpc.protocol.RPCClientCodec;
|
import com.loafle.commons.rpc.protocol.RPCClientCodec;
|
||||||
|
@ -21,7 +22,8 @@ public class JSONRPCClientCodec extends JSONRPCCodec implements RPCClientCodec {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] request(String method, Object[] params, Object id) throws RPCException {
|
public byte[] request(String method, Object[] params, Object id) throws RPCException {
|
||||||
JSONClientRequest request = new JSONClientRequest(JSONRPC.version, method, params, id);
|
List<String> _params = JSONUtil.convertParamsToStringArray(objectMapper, params);
|
||||||
|
JSONClientRequest request = new JSONClientRequest(JSONRPC.version, method, _params, id);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String json = this.objectMapper.writeValueAsString(request);
|
String json = this.objectMapper.writeValueAsString(request);
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.loafle.commons.rpc.protocol.json;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.internal.Primitives;
|
||||||
|
import com.loafle.commons.rpc.RPCException;
|
||||||
|
|
||||||
|
import org.codehaus.jackson.map.ObjectMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSONUtil
|
||||||
|
*/
|
||||||
|
public abstract class JSONUtil {
|
||||||
|
public static List<String> convertParamsToStringArray(ObjectMapper objectMapper, Object[] params)
|
||||||
|
throws RPCException {
|
||||||
|
List<String> values = new ArrayList<>();
|
||||||
|
if (null == params || 0 == params.length) {
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (Object param : params) {
|
||||||
|
Class<?> clazz = param.getClass();
|
||||||
|
if (!Primitives.isPrimitive(clazz) && !clazz.equals(String.class)) {
|
||||||
|
values.add(objectMapper.writeValueAsString(param));
|
||||||
|
} else {
|
||||||
|
values.add(String.valueOf(param));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RPCException("cannot unmarsharling", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user