2016-06-08 49 views
0

我正在使用一些网站中的API生成随机引号的网页上工作。我试图使用AJAX/jQuery来访问由API提供的JSON。我尝试过一百万种不同的东西,但对于我来说,我无法通过ID来访问JSON的值。我可以访问整个JSON。但我似乎无法获得个人价值观。无法访问单个JSON值/ jQuery-Ajax

此代码...

function init() { 
var $data = $('#data'); 

$.ajax({ 
    url: 'https://andruxnet-random-famous-quotes.p.mashape.com/?cat=famous', 
    type: 'GET', 
    datatype: 'json', 
    success: function(data) { 
    $.each(JSON.parse(data),function(i, quote) { 
     $data.append('<p class="text-center"> '+quote+ '</p>'); 
    }); 
    }, 
    error: function(err) { alert(err); }, 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("X-Mashape-Authorization""); 
    } 
    }); 
} 
window.onload = init; 

这是回馈所有的值,他们是正确的格式。但是它会让所有人都回归。我不想要最后一个,我希望能够通过ID分别访问每个值。

{ 
    "quote": "Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth.", 
    "author": "Sherlock Holmes", 
    "category": "Famous", 
} 

以上是JSON的样子。我只想访问前两个值。当过我尝试的东西,如访问他们...

$.ajax({ 
    url: 'https://andruxnet-random-famous-quotes.p.mashape.com/?cat=famous', 
    type: 'GET', 
    datatype: 'json', 
    success: function(data) { 
    document.write('<p>' + data.quote + '</p>'); 
    }, 
    error: function(err) { alert(err); }, 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("X-Mashape-Authorization", ""); 
    } 
}); 

我试过一百万个不同的事情,但无论我做什么,我不能用自己的ID获得访问JSON的值。这是我绝对第一次使用Web API,所以我必须错过一些东西。任何帮助,将不胜感激。

+0

有没有在你的问题的JSON额外的逗号和也'xhr.setRequestHeader一个额外的引号( “X-Mashape的授权”“);' 尝试https://jsonformatter.curiousconcept.com/和HTTP ://www.jslint.com/验证你的代码 – Jaumzera

+0

在页面加载后你不能使用'document.write' ....它会把整个页面中的所有内容都擦掉 – charlietfl

回答

0

做这样的工作?

... 
success: function(data) { 
    var items = JSON.parse(data); 
    $data.append('<p class="text-center"> '+ items[0].quote + '</p>'); 
}, 
... 
+0

JSON.parse不需要'dataType:'json'' – charlietfl

+0

非常感谢你!这个工作。我所要做的只是和你的建议有一点不同,就是在items.quote中放下[0]。现在我可以访问每个值它是自己的,并且以它的方式来做......当然是在我的能力范围内:)再一次,非常感谢你,你真的让我在这里脱身了! –

+0

很高兴工作! – H77