【问题标题】:How to load data from external json file using jquery?如何使用 jquery 从外部 json 文件加载数据?
【发布时间】:2020-06-12 10:26:37
【问题描述】:

这是我的 app.js 文件

$(document).ready(function () {
        $.getJSON("http://localhost:3000/db.json", function (data) {

        $(data.as).each(function (index, value) {

            console.log(value);
        });
    });
});

这是 db.json 文件

{
  "as": [
    {
      "imageID": "1",
      "imageSource": "Popular Science 1",
      "alt": "Science 1"
    },
    {
      "imageID": "2",
      "imageSource": "Popular Science 2",
      "alt": "Science 2"
    }
  ]
}

如何只获取例如Popular Science 2? 如果我写console.log(value[1]);,则会显示错误。如何索引一个数组?

【问题讨论】:

  • 在 JavaScript 和大多数编程语言中,数组是通过从零开始的索引来访问的。 [0] 表示第一项,[1] 表示第二项,依此类推

标签: javascript jquery arrays json ajax


【解决方案1】:

你可以简单地使用:

value.imageSource

因为value是这里的对象。

const data = {as:[{imageID:"1",imageSource:"Popular Science 1",alt:"Science 1"},{imageID:"2",imageSource:"Popular Science 2",alt:"Science 2"}]};

$(data.as).each(function(index, value) {
  console.log(value.imageSource);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

如果你只想要Popular Science 2,那么就不需要循环了。你可以这样做:

const data = {as:[{imageID:"1",imageSource:"Popular Science 1",alt:"Science 1"},{imageID:"2",imageSource:"Popular Science 2",alt:"Science 2"}]};

console.log( data.as[1].imageSource );

或者,通过一些验证,例如:

const data = {as:[{imageID:"1",imageSource:"Popular Science 1",alt:"Science 1"},{imageID:"2",imageSource:"Popular Science 2",alt:"Science 2"}]};

// Vlidating that we actually have an array and data as index 1
if( data && data.as && data.as.length > 1){ 
  console.log( data.as[1].imageSource );
}

【讨论】:

  • 是的,但我只想显示“科普2”?怎么样?
  • 你可以使用console.log( data.as[1].imageSource );console.log( data?.as[1]?.imageSource );
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
相关资源
最近更新 更多