我在访问JSON属性时未定义

时间:2017-06-09 15:13:35

标签: javascript json

我使用Parse Server,在Cloude Code中,在保存之前,我想从api获取一个json。

我使用XMLHttpRequest来获取json,这里是json格式化的结果:

Json

这是我获取json的代码:

var getJSON = function(url, requisicaoAceita, requisicaoFracassou) {
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'json';
    xhr.onload = function() {
        if(xhr.status!=200){
            requisicaoFracassou(xhr.responseText);
        }else{
            requisicaoAceita(xhr.responseText);
        }
    };
    xhr.send();
};


getJSON(url,
    function(xhr){
        var resultado = xhr;
        console.log(resultado);
        console.log(resultado.result);
    },

    function(xhr){
        console.log("Error");
    }
);  

在第一个输出console.log(resultado)中我得到了正确的结果,但是在第二个console.log(resultado.result)我得到了未定义,为什么会这样?

谢谢:)

2 个答案:

答案 0 :(得分:1)

您确实使用.responseText代替.response,这会考虑所选的responseType。您的resultado仍然是JSON字符串,而不是具有result属性

的对象

答案 1 :(得分:0)

感谢您帮助我Shubham Khatri

  

在使用之前解析结果   的console.log(JSON.parse(resultado)。结果);

这样做之后,工作了!

$('#lst1').change(function() {
  if ($('input:radio[name="editList"]').val() === responsable.SUCURSAL) {
  $('#lst2').val($(this).val());
  }
});