奇怪的JSON,如何访问所需的值

时间:2016-01-08 22:34:02

标签: json

这是JSON响应:

enter image description here

我需要访问data[1] 0.2。我怎么得到它?

这是实际的代码:

function getTheValue(){
    var result = $.ajax({ url: "https://www.blahblah.com/json" });
    return result;
}

console.log(getTheValue());

这是我试过的另一种方式,没有运气:

var val = getTheValue();
console.log(val.responseJSON.dataset.data[0][1]);

4 个答案:

答案 0 :(得分:0)

您看到的响应是ajax对象,而不是函数的返回。 $ .ajax是异步的,因此该值不会立即可用。

改编自the jQuery docs

$.ajax({
  url: your_url,
})
.done(function( result ) {
  console.log( result );
});

会给你结果。您需要在done()函数内触发后续代码。

答案 1 :(得分:0)

该对象不是json的常识,而是Javascript对象,如果你想要ajax结果,你必须使用回调:

$.ajax({
  url: "https://www.blahblah.com/json" ,
  dataType: "json",
})
.done(function(data) {
  console.log(data);
});

答案 2 :(得分:0)

您的getTheValue函数未从AJAX调用返回JSON响应。它返回一个promise对象,因为它实际上是一个异步调用。我建议您阅读jQuery.ajax()的文档以获取更多信息。

无论如何,您可以通过以下方式解决问题:

var val;
getTheValue().done(function(response) {
    val = response.dataset.data[0][1];
});

答案 3 :(得分:0)

这最终帮助了我:

var tBill = getTheBill();

    function getTheBill(){
        var result;
        $.ajax
        ({
            url: "https://www.blahblah.com/json",
            context: document.body,
            async: false
        }).done(function(val) {
            result = val;
        });
        return result.dataset.data[0][1];
    }

伙计们,谢谢你的帮助! jimm101,你摇滚。