如何从JSON文件(Ajax,js)中的多个对象中选择一个对象?

时间:2016-09-05 13:52:05

标签: javascript json ajax node.js

有一个函数可以向JSON文件发送Ajax请求,获取文本并将其放在HTML页面中。 我需要过滤JSON内容以仅获取某个对象(JSON文件中的许多对象)。

我首先尝试了这个,以便从同一个对象中获取特定的键或参数:

 var responseObject = JSON.parse(xhr.responseText); 
console.log(responseObject.header);
callback(responseObject.header);

现在在Web控制台中,我看到了我需要的密钥参数。但是在页面上这个文字没有出现。

问题:

  • 代码中的错误在哪里?
  • 据我所知,通过这种方式,我可以获取对象内部的键或其参数。但是在其他几个对象中选择一个对象应该是什么语法?
  • 我听说在服务器端也可以这样做,是吗? 请告诉我有关这个问题的任何材料,我刚刚开始 学习Ajax和NodeJS。

整个功能(它被写为commonjs模块)

module.exports = function(jsonDir, templId, finId){
function sendGet(callback) {
    /* create an AJAX request using XMLHttpRequest*/
    var xhr = new XMLHttpRequest();
    

    /* Specify the type of request by using XMLHttpRequest "open", 
       here 'GET'(argument one) refers to request type
       "jsonDir" (argument two) refers to JSON file location*/
    xhr.open('GET', jsonDir);

    /*Using onload event handler you can check status of your request*/
    xhr.onload = function () {
        if (xhr.status === 200) {
        
            
            var responseObject = JSON.parse(xhr.responseText); 
            console.log(responseObject.header);
            callback(responseObject.header);
         
        } else {
            alert(xhr.statusText);
        }
    };

    /*Using onerror event handler you can check error state, if your request failed to get the data*/
    xhr.onerror = function () {
        alert("Network Error");
    };

    /*send the request to server*/
    xhr.send();
}

//For template-1
var dateTemplate = document.getElementById(templId).innerHTML;
var template = Handlebars.compile(dateTemplate);

sendGet(function (response) {
    document.getElementById(finId).innerHTML += template(response);
})
}

0 个答案:

没有答案