我在AWS服务器上有JSON我访问使用JQuery,在json文件里面是几百个我希望循环的对象并随机挑出一个。然后获取该对象的属性。
这是JSON:
{
"1":{
"title":"Sailing for Kids",
"ISBN":"1909911267"
},
"2":{
"title":"True Spirit: The Aussie girl who took on the world",
"ISBN":"413513243"
},
..........
这就是我试图获取json对象的方式。
$(document).ready(function(){
$.ajax({
crossOrigin: true,
url : "https://link/to/file.json",
type : "GET",
success:function(data){
var randomItem = data[Math.random() * data.length | 0];
// take only the element with index 0
alert(randomItem[0]);
}
});
});
但是,警报仅显示一个字符。像这样:
如何遍历所有返回的JSON文件文件,选择一个对象然后获取属性(标题/ ISBN)以便我可以使用它们?
答案 0 :(得分:-2)
[
{
"1":{
"title":"Sailing for Kids",
"ISBN":"1909911267"}
},
{
"2":{
"title":"True Spirit: The Aussie girl who took on the world",
"ISBN":"413513243"}
}
]
您可能需要按上述方法构建JSON
答案 1 :(得分:-2)
首先,我会console.log(data)
甚至console.log(data[1])
来查看我实际得到的内容。根据标题,结果可能是作为文本而不是对象发送的,在这种情况下,您需要执行data = JSON.parse(data)
然后,要获得对象的实际长度(如建议的那样),您需要使用Object.keys(数据),或者您可以将数据排列在数组中。
如果n
的长度超过Math.floor(Math.random() * n)
那么该范围内的随机数。
编辑: 不小心,Object.keys(data)是一个键数组。因此,您需要的长度是Object.keys(data).length
编辑2:
var keys = Object.keys(data)
var n = keys.length;
var randomNumber = Math.floor(Math.random() * n);
var randomKey = keys[randomNumber];