JSON and AJAX response


JSON and AJAX response

嗨,我有一个JSON:响应

[{"id":"1","message":"sdvsvdsdv","nickname":""},{"id":"2","message":"1234556","nickname":""},{"id":"3","message":"4555555","nickname":""}]

javascript函数:

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();}

如何只获取元素"message"而不获取整个JSON?。

使用JSON.parse("<JSON-STRING>")取出对象。从对象中,您可以提取您的消息。

类似于:

var jsonObj = JSON.parse(request.responseText);
for (var i=0; i<jsonObj.length; i++){
     alert(jsonObj[i].message); //alerts each "message" ..
}

这与实际问题有所不同,但我确实建议您使用jQuery库。这会让你付出一半的努力。有一个简单的$.ajax(..)来处理AJAX请求,$.parseJSON(..)来解析JSON字符串——所有这些都是以跨浏览器的方式进行的。

var returnObject = JSON.parse(request.responseText);
for (var i in returnObject) {
    document.getElementById("chat").innerHTML += '<br/>' + returnObject[i].message;
}

像这样:

resp = '[{"id":"1","message":"sdvsvdsdv","nickname":""},{"id":"2","message":"1234556","nickname":""},{"id":"3","message":"4555555","nickname":""}]'
console.log(JSON.parse(resp)[0]['message'])

使用JSON.parse()方法将JSON字符串转换为JS对象