У меня есть следующий объект Javascript:
var o = {
"username":"username",
"args": [
"1", "2", "3"
]
};
И отправьте его как:
xhr.send(JSON.stringify(o));
Мой класс java:
public class Command implements Serializable {
private String username;
private String[] args;
//getters, setters constructors etc.
}
И в моем сервлете:
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response){
Command c;
try {
c = gson.fromJson(request.getReader(), Command.class);
} catch(Exception e) {
.
.
.
Дает ошибку: ожидается BEGIN_ARRAY, но был STRING в строке 1 столбца X, где номер столбца X есть где "[появляется в строковом JSON.
Из того, что я понимаю, это должно быть очень простым и понятным. Что я делаю неправильно?
EDIT: Я думаю, что это может быть связано с поведением JSON.stringfy() с массивами javascript строк.
JSON.stringify(o) возвращает:
"{" username ":" username "," args ":" [\ "1 \", \ "2 \", \ "3 \" ] "}"