Adesso sto provando a fare così ma mi da lo stesso errore .....
Invece se li passo un altro tipo di oggetto funziona ... non ci sto capendo più niente.
$.ajax({
url: "getFirstNode",
type: 'POST',
dataType: 'json',
success: function (data) {
alert('success');
},
error: function (data) {
alert('error');
}
});
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = "node1";
String title = "Risoluzioni problemi nodo 1";
ArrayList<String> question = new ArrayList();
question.add("possibile problema 1");
question.add("possibile problema 2");
question.add("possibile problema 3");
ArrayList<String> value = new ArrayList();
value.add("node2");
value.add("node3");
value.add("node4");
Node node = new Node(id,title,question,value);
Gson g = new Gson();
String jsonResult = g.toJson(id);
try (PrintWriter writer = response.getWriter()) {
writer.print(jsonResult);
writer.flush();
writer.close();
}
}
la classe node è questa :
public class Node {
private String id;
private String title;
private ArrayList<Radio> radioList;
public Node (){
id = "";
title = "";
radioList = null;
}
public Node (String id, String title, ArrayList question, ArrayList radioValue){
this.id = id;
this.title = title;
int i = 0;
while (question.get(i) != null){
String q = (String) question.get(i);
String v = (String) radioValue.get(i);
Radio radio = new Radio(q,v);
radioList.add(radio);
i++;
}
}
public String getId(){
return id;
}
public String getTitle(){
return title;
}
public ArrayList<Radio> getRadioList(){
return radioList;
}
public void setID (String id){
this.id = id;
}
public void setTitle (String title){
this.title = title;
}
public void setRadioList (ArrayList radioList){
this.radioList = radioList;
}
}
e la radio è :
public class Radio {
private String text;
private String value;
public Radio() {
text = "";
value = "";
}
public Radio (String text, String value){
this.text = text;
this.value = value;
}
public String getText (){
return text;
}
public String getValue (){
return value;
}
public void setText (String text){
this.text = text;
}
public void setValue (String value){
this.value = value;
}
}