Javascript 从json文件重定向到随机url

Javascript 从json文件重定向到随机url,javascript,jquery,json,Javascript,Jquery,Json,我有一个充满链接的json文件,我想做一个随机按钮重定向到json文件上列出的一些链接 json文件示例: {"pages":[ { "url": "https://www.google.com/" }, { "url": "https://stackoverflow.com/" }, { "url": "https://www.twitter.com/" }, { "ur

我有一个充满链接的json文件,我想做一个随机按钮重定向到json文件上列出的一些链接

json文件示例:

{"pages":[
      {
        "url": "https://www.google.com/"
       },
 {
        "url": "https://stackoverflow.com/"
       },
 {
        "url": "https://www.twitter.com/"
       },
 {
        "url": "https://www.facebook.com/"
       },
  ]
}
可以使用在0和数组长度之间选择一个随机数。然后将其转换为整数

然后可以将该值用作从数组中拾取随机对象的索引

一旦你有了
location.href
location.replace()
可以用来将页面重定向到随机选取的url。代码示例如下:

var json={
“页数”:[{
“url”:”https://www.google.com/"
},
{
“url”:”https://stackoverflow.com/"
},
{
“url”:”https://www.twitter.com/"
},
{
“url”:”https://www.facebook.com/"
},
]
};
var index=Math.floor(Math.random()*json.pages.length);
var url=json.pages[index].url;
log(“重定向到:+url”);
location.href=url使用javascript Math.random()函数和Math.floor()函数在任意范围内生成一个随机数

在您的情况下,它将是数组大小的0。使用上述函数生成一个随机数,然后选择该索引并在单击按钮时重定向到该链接

HTML

<button id="randomLinkButton">
Random Page
</button>
处理按钮的单击处理程序的更好方法,如中所示

由于被阻止,重定向的页面在JSFIDLE中将显示为空白


让我们看看你试过什么?张贴代码谢谢,这正是我一直在寻找的,你能告诉我如何将其用作文件吗?like var json={url.json}很抱歉,我尝试了like,但似乎不起作用:var json=$.getJSON(“/index.json”,function(){console.log(“success”);})$('button')。单击(function(){var index=Math.floor(Math.random()*json.pages.length);location.href=json.pages[index].url;});从getJSON检索到的数据可以在回调函数中读取。检查更新的代码。@H77我已经使用了您的代码从数组中获取随机URL,这归功于您:)
function getRandomUrl(){

  // define your source JSON data file URL
  var url = 'http://server/file',
        def = $.Deferred();

    $.getJSON( url ).done(function( data ){
    // received

    // get random index
    var randomIndex = Math.floor(Math.random() * data.pages.length);

    // resolve with random URL
    def.resolve( data.pages[ randomIndex ].url );

  }).fail( function( error ){

    // failed
    def.reject( error );
  });

  return def;
}

$(document).ready( function(){
  getRandomUrl().done(function(url){

    // button click code
    var buttonClickCode = "window.location.href = '" + url + "'";

    // button click handler
    $('#randomLinkButton').attr('onClick', buttonClickCode)

  }).fail(function(){

    // failed
  });

});