【问题标题】:Get only url value of FileStack JSON.stringify?仅获取 FileStack JSON.stringify 的 url 值?
【发布时间】:2017-04-13 19:14:59
【问题描述】:

我在我的网站上使用 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>

我得到这个:

[{"url":"https://cdn.filepicker.io/api/file/--link1--"}]

但是我怎样才能通过这种方式获取 URL 值呢?:

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

谁有解决办法?

【问题讨论】:

  • JSON.stringify(Blobs)[0].url; 否则你必须先解析 JSON.parse()

标签: javascript json url info


【解决方案1】:

你快到了,不是吗?

[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--"}]',这是一个字符串,因为它来自stringifyed 变量。因此,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 它。

更新

或者如果你想显示多个url,因为多个文件替换后一种方法

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

【讨论】:

  • 您好,感谢您的回答,但我尝试过这种方式,但没有任何显示
  • @NekoLopez 试试这个。
  • 太棒了!但是,如果我上传多个文件会怎样?我将始终只获得我选择的第一个文件的一个 url,而不是其余的 URL 文件。
  • 非常感谢!!你是个天才! :D!
猜你喜欢
  • 2022-11-04
  • 2016-03-10
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多