Я делаю простую html-программу для сервлетов, в которой мне нужно получить объект JSON из сервлета, а в html я могу получить данные, но как я могу ссылаться на каждый атрибут?
Вот сервлет get
метод
PrintWriter out=response.getWriter();
StringBuffer emps = new StringBuffer("{employees:[");
emps.append("{fullname:\"Abhishek Raj Simon\"},{email:\"a@a.com\"}]");
emps.append("}");
out.println(emps);
JS для отправки
function getJson()
{
var url_action="/temp/jsontest";
var form=document.forms["mainForm"];
var splitOutput;
var client;
var dataString;
if (window.XMLHttpRequest){
client=new XMLHttpRequest();
} else {
client=new ActiveXObject("Microsoft.XMLHTTP");
}
client.onreadystatechange=function(){
if(client.readyState==4&&client.status==200)
{
var res=client.responseText;
alert(res);
alert(client.responseText.employees.fullname); //DOES NOT WORK
alert(client.responseText.employees.email); //DOES NOT WORK
}
};
client.open("GET",url_action,true);
client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
client.send();
и простая форма
<form>
<input type="button" value="get me some json" onclick="getJson();">
</form>
Когда я нажимаю на кнопку, я получаю только 1 предупреждение
{employees:[{fullname:"Abhishek Raj Simon"},{email:"a@a.com"}]}
Как я могу получить Abhishek Raj Simon
и a@a.com
, используя полное имя и адрес электронной почты соответственно?
Отредактировано после прочтения поста от Артема
мой сервлет
Gson gson = new Gson( );
List<Employee> employees = new ArrayList<Employee>();
Employee emp=new Employee();
emp.setFullname("Abhishek Raj Simon");
emp.setEmail("a@a.com");
employees.add(emp);
response.setContentType( "application/json");
out.println( gson.toJson( employees));
JS часть
var res=eval('(' + client.responseText + ')');
alert(res);
alert(res.employees.fullname);
alert(res.employees.email);