Задача
Я хотел бы использовать JSON-RPC для отправки этого на стороне клиента:
{"jsonrpc":"2.0","method":"RegisterValues","params":[["Planets","Stars"]],"id":2}
Моя попытка
Использование Resty-GWT:
public interface testService extends RestService {
@Produces("application/json")
@POST
public void myCall(Params myparams, MethodCallback<Response> callback );
public class Params {
String jsonrpc = "2.0";
String method;
//String[] params;
Map<String, String> params;
int id;
public void setId(int id){
this.id = id;
}
public void setMethod(String method){
this.method = method;
}
}
public void setParams(Map<String, String> params){
this.params = params;
}
}
Когда я вызываю объект Params в другом классе (для настройки вызова), делаю что-то вроде этого:
Map<Integer, String> myParams = new HashMap<Integer, String>();
myParams.put(0, "Planets");
myParams.setParams(myParams);
Очевидно, что это отправляет его как:
{"jsonrpc":"2.0", "method":"RegisterValues", "params":{"0":"Planets"}, "id":0}
Я не могу понять, как получить эту магию: [["Planets"]]
Я пытался использовать String[]
, но это дает мне результат: ["Planets"]
String[][]
выдает ошибку, что она еще не поддерживается.
Ужасный взлом
Если я передам String
в свой testService
как:
String myparams = "{\"jsonrpc\":\"2.0\",\"method\":\"RegisterValues\",\"params\":[[\"FPlanets\"]],\"id\":2}";
Это работает, но, очевидно, это ужасно.
Я пытался использовать GSON для кодирования POJO, но GWT не допускает отражения. Я попытался использовать thetransactioncompany для анализа объекта в "String", но не смог не могу понять, что мне нужно <inherits>
в моем файле gwt.xml
.
Какие-нибудь мысли?