只获取FileStack JSON.stringify的url值?

时间:2016-11-29 17:17:05

标签: javascript json url info

我在我的网站上使用FileStack,根据FileStack Docs我实际上有这个:

<iframe id="framefile" width="700" height="500" frameborder="0">
<p>Your browser does not support iframes.</p>
</iframe>
<div id="files"></div>

在javascript方面:

<script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript" src="http://api.filepicker.io/v2/filepicker.js"></script>

<script type="text/javascript">
filepicker.setKey("myAPIKey");
filepicker.pickMultiple(
  {
    mimetype: '*/*',
    language: 'es_mx',
    container: 'framefile',
    services: ['COMPUTER','GOOGLE_DRIVE','DROPBOX']
  },
  function(Blobs){
    console.log(JSON.stringify(Blobs));
  },
  function(FPError){
    console.log(FPError.toString());
  });
  </script>

我只需要获取URL文件值并将其放在div中。我试过这个:

<script type="text/javascript">
filepicker.setKey("myAPIKey");
filepicker.pickMultiple(
  {
    mimetype: '*/*',
    language: 'es_mx',
    container: 'framefile',
    services: ['COMPUTER','GOOGLE_DRIVE','DROPBOX']
  },
  function(Blobs){
    console.log(JSON.stringify(Blobs));
    var result = JSON.stringify(Blobs, ['url']);
    $('#files').html(result);
  },
  function(FPError){
    console.log(FPError.toString());
  });
</script>

我得到了这个:

  

[{&#34; URL&#34;:&#34; https://cdn.filepicker.io/api/file/--link1--&#34;}]

但是如何以这种方式获取URL值?:

  

https://cdn.filepicker.io/api/file/--link1--

任何人都有解决方案吗?

1 个答案:

答案 0 :(得分:2)

你几乎就在那里,不是吗?

如何将[0].url附加到返回的对象上?

我的意思是用result = JSON.stringify(Blobs, ['url']);代替result = JSON.stringify(Blobs, ['url'])[0].url;

更新

我的第一个回答是错的,因为

中的result
result = JSON.stringify(Blobs, ['url'])

返回'[{"url":"https://cdn.filepicker.io/api/file/--link1--"}]',这是一个字符串,因为它来自stringify ed变量。因此,result[0]返回其第一个字符"["。最后result[0].url或换句话说,"[".url未定义。 (并且很难如此)

替换此部分:

function(Blobs){
    console.log(JSON.stringify(Blobs));
    var result = JSON.stringify(Blobs, ['url']);
    $('#files').html(result);
}

通过

function(Blobs){
    $('#files').html(Blobs[0].url);
}

如果想要从json获取所需信息,则不得stringify

更新

或者,如果您想显示多个网址,由于多个文件会替换后一种方法

function(Blobs){
    var displayedUrls = "";
    for (i = 0; i < Blobs.length; i++) { 
        displayedUrls += Blobs[i].url + "<br>";
    }
}
$('#files').html(displayedUrls);