【问题标题】:Extracting JSON data into a table将 JSON 数据提取到表中
【发布时间】:2019-07-21 15:05:21
【问题描述】:

我正在尝试创建一个包含美国所有州的表格。而不是手动创建表,我想我会尝试使用 Javascript 使用 JSON 文件中的数据创建表。

我有一个将 JSON 作为对象返回的 jQuery 函数。当我调用 console.log 时,我可以看到如下 JSON 数据:

0: {name: "Alabama", abbreviation: "AL"}
1: {name: "Alaska", abbreviation: "AK"}
2: {name: "American Samoa", abbreviation: "AS"}
3: {name: "Arizona", abbreviation: "AZ"}
4: {name: "Arkansas", abbreviation: "AR"}
5: {name: "California", abbreviation: "CA"}
6: {name: "Colorado", abbreviation: "CO"}
7: {name: "Connecticut", abbreviation: "CT"}
8: {name: "Delaware", abbreviation: "DE"}
9: {name: "District Of Columbia", abbreviation: "DC"}
10: {name: "Federated States Of Micronesia", abbreviation: "FM"}
11: {name: "Florida", abbreviation: "FL"}
12: {name: "Georgia", abbreviation: "GA"}
13: {name: "Guam", abbreviation: "GU"}
14: {name: "Hawaii", abbreviation: "HI"}
15: {name: "Idaho", abbreviation: "ID"}
16: {name: "Illinois", abbreviation: "IL"}
17: {name: "Indiana", abbreviation: "IN"}
18: {name: "Iowa", abbreviation: "IA"}
19: {name: "Kansas", abbreviation: "KS"}

我尝试将其存储为一个变量,然后传输到一个数组,然后循环遍历该数组以创建表,但它无法识别该 jQuery 函数之外的变量。

$(document).ready(function () {
  $.getJSON('resources/js/states.js   ', function (data) {
    console.log(data);
  });
}); 

我希望有人能告诉我如何将传入的 JSON 数据存储为一个数组,以便我可以按照其他一些示例通过循环遍历该数组来创建表。

【问题讨论】:

  • 您希望我们如何知道resources/js/states.js 的回复?你真的从那个调用中得到一个 json 响应吗?
  • 嗨 Alon,我进行了编辑以添加控制台中返回的 JSON 数据。
  • 这就是你要找的,检查接受的答案stackoverflow.com/questions/30464675/…
  • 感谢 Elon 的回复。我坚持的事情是如何将 JSON 数据放入 JS 变量中,它在另一个文件中,而不是在同一个文件中。

标签: javascript jquery html arrays json


【解决方案1】:

这甚至不是 JSON 文件。那是一个JS文件。

  1. 您需要在名为states.json 的“resources/js”文件夹中创建一个新的 JSON 文件并将状态添加到文件中。 states.json 示例:
[
    {"name":"Alabama","alpha-2":"AL"},
    {"name":"Alaska","alpha-2":"AK"},
    {"name":"Arizona","alpha-2":"AZ"},
    {"name":"Arkansas","alpha-2":"AR"},
    {"name":"California","alpha-2":"CA"},
    {"name":"Colorado","alpha-2":"CO"},
    {"name":"Connecticut","alpha-2":"CT"},
    {"name":"Delaware","alpha-2":"DE"},
    {"name":"District of Columbia","alpha-2":"DC"},
    {"name":"Florida","alpha-2":"FL"},
    {"name":"Georgia","alpha-2":"GA"},
    {"name":"Hawaii","alpha-2":"HI"},
    {"name":"Idaho","alpha-2":"ID"},
    {"name":"Illinois","alpha-2":"IL"},
    {"name":"Indiana","alpha-2":"IN"},
    {"name":"Iowa","alpha-2":"IA"},
    {"name":"Kansa","alpha-2":"KS"},
    {"name":"Kentucky","alpha-2":"KY"},
    {"name":"Lousiana","alpha-2":"LA"},
    {"name":"Maine","alpha-2":"ME"},
    {"name":"Maryland","alpha-2":"MD"},
    {"name":"Massachusetts","alpha-2":"MA"},
    {"name":"Michigan","alpha-2":"MI"},
    {"name":"Minnesota","alpha-2":"MN"},
    {"name":"Mississippi","alpha-2":"MS"},
    {"name":"Missouri","alpha-2":"MO"},
    {"name":"Montana","alpha-2":"MT"},
    {"name":"Nebraska","alpha-2":"NE"},
    {"name":"Nevada","alpha-2":"NV"},
    {"name":"New Hampshire","alpha-2":"NH"},
    {"name":"New Jersey","alpha-2":"NJ"},
    {"name":"New Mexico","alpha-2":"NM"},
    {"name":"New York","alpha-2":"NY"},
    {"name":"North Carolina","alpha-2":"NC"},
    {"name":"North Dakota","alpha-2":"ND"},
    {"name":"Ohio","alpha-2":"OH"},
    {"name":"Oklahoma","alpha-2":"OK"},
    {"name":"Oregon","alpha-2":"OR"},
    {"name":"Pennsylvania","alpha-2":"PA"},
    {"name":"Rhode Island","alpha-2":"RI"},
    {"name":"South Carolina","alpha-2":"SC"},
    {"name":"South Dakota","alpha-2":"SD"},
    {"name":"Tennessee","alpha-2":"TN"},
    {"name":"Texas","alpha-2":"TX"},
    {"name":"Utah","alpha-2":"UT"},
    {"name":"Vermont","alpha-2":"VT"},
    {"name":"Virginia","alpha-2":"VA"},
    {"name":"Washington","alpha-2":"WA"},
    {"name":"West Virginia","alpha-2":"WV"},
    {"name":"Wisconsin","alpha-2":"WI"},
    {"name":"Wyoming","alpha-2":"WY"}
]
  1. 使用它来访问 JSON 文件作为一个数组:
var states = [];
$(document).ready(function () {
  $.getJSON('resources/js/states.json', function (data) {
    console.log(data);
    states = data;
  });
});

注意:如果您的 JSON 文件不包含有效的 JSON,JQuery 将抛出错误。 编辑:我忘了包括如何在回调范围之外(在全局范围内)访问它。

【讨论】:

  • 我的错误,感谢您的纠正。我在网上找到了数据,但经验不足,无法判断它不是 JSON。然而,jQuery 并没有抛出任何错误。
  • 没问题。 @Quentin 我怎么没有回答这个问题? OP 没有使用有效的 JSON,而是使用了一个认为它是 JSON 的 JavaScript 文件。
  • OP 成功地将数据输入到他们的程序中(他们引用了 console.log 的结果)。问题是询问如何从中生成 HTML 元素。你甚至没有提到这一点。
  • 重新编辑:usually won't work.
猜你喜欢
  • 2021-10-06
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 2020-08-16
相关资源
最近更新 更多