Hi the response i have an JSON :
[{"id":"1","message":"sdvsvdsdv","nickname":""},{"id":"2","message":"1234556","nickname":""},{"id":"3","message":"4555555","nickname":""}]
The javascript function :
function ajax_request(){
var request = new XMLHttpRequest();
var url = "http://localhost/chat/controller.php?showmessage";
request.open("post", url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200){
var return_data = request.responseText; // THE WHOLE JSON
document.getElementById("chat").innerHTML = return_data;
}
}
request.send();}
How can i get the element "message" only not the whole JSON ?.
Use JSON.parse("<JSON-STRING>")
to get the object out. From the object, you could extract your message.
Something like:
var jsonObj = JSON.parse(request.responseText);
for (var i=0; i<jsonObj.length; i++){
alert(jsonObj[i].message); //alerts each "message" ..
}
This is something apart from the actual question, but I would really suggest you to use jQuery library. That takes away half of your efforts. There's a simple $.ajax(..)
to do AJAX requests, and $.parseJSON(..)
to parse JSON strings -- all in a cross-browser way.
var returnObject = JSON.parse(request.responseText);
for (var i in returnObject) {
document.getElementById("chat").innerHTML += '<br/>' + returnObject[i].message;
}
Like this:
resp = '[{"id":"1","message":"sdvsvdsdv","nickname":""},{"id":"2","message":"1234556","nickname":""},{"id":"3","message":"4555555","nickname":""}]'
console.log(JSON.parse(resp)[0]['message'])
Use JSON.parse()
method to convert JSON string to the JS-object