如何使用javascript读取包含数组数据的本地json文件?

琼·特里(Joan Triay)

我有这个.json文件,我想将其加载到一个全局变量中,我可以使用AJAX,JavaScript从所有Web访问该变量。我该怎么做?我想通过索引访问变量,例如my_var[1].img我读了很多文章,但没有找到解决方案。

myData.json

{
 "data": [
 { "img": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRHQ5Sf2Cffo0QdRtFw0t8zdk90FWgywc1kDKAuOV874zYO_0pC", "other": "Ra.One" },
 { "img": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQkVg9n2UbPTeiPNGUOw2SqdAzJsZzuHrkYw78sjaMMCcTWcuFjUtT3NZ8", "other": "3 Idiots" },
 { "img": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQ0Wam0d96ASpEHDFfskGTBdILKlDpXAKzELFdfdKmkoye5JmrF9qS1u1qtZw", "other": "Chaalis Chauraasi (4084)" },
 { "img": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSAf7q-m96JL88_W8EATmVlwCfOKb5dw1keyDSO6PWwzaSVtqGyix2lvE", "other": "Gangs Of Wasseypur" }
 ]}

index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MyWeb</title>

 <script type="text/javascript" src="myData.json"></script>
 <script src="https://code.jquery.com/jquery-1.10.2.js"></script>

 </head>
 <body>

<script>
 var my_json;
 $.getJSON("myData.json", function(json) {
 my_json = json;
 });
</script>
</body>
</html>
马可·博内利(Marco Bonelli)

鉴于这jQuery.getJSON是一个异步函数,您必须在回调中使用数据。如果要将其保存在全局变量中,请记住,仍然必须使用由的回调调用的函数getJSON才能使用它(尽管我不推荐使用)。给定您的JSON结构,您可以使用来访问图像json.data[index].img,并像这样创建全局变量my_json = json.data以稍后使用它my_json[index].img这是一个例子:

var my_json;

function useTheData() {
    for (var i = 0; i < my_json.length; i++) {
        console.log(i, "-", my_json[i].img);
    }
} 

$.getJSON("myData.json", function(json) {
    my_json = json.data;
    useTheData();
});

如果您想访问脚本主体中的变量(即不在另一个函数中),那么您唯一可以做的就是使用通过创建同步请求XMLHttpRequest,如下所示:

var xhr = new XMLHttpRequest(),
    my_json;

xhr.open('GET', 'myData.json', false);
xhr.send();

my_json = JSON.parse(xhr.responseText).data;

// Now use the my_json variable anywhere you want

请注意,这将减慢脚本速度并暂停页面的呈现和执行,直到请求完成为止,因此,我不建议这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Vanilla Javascript,如何读取本地JSON文件

使用 Javascript 读取本地 JSON 文件

如何使用C#读取包含数组的json文件并对其执行LINQ查询?

如何在JavaScript中读取外部本地JSON文件?

如何使用JavaScript读取包含(以竖线分隔的)值的.psv文件数据

如何使用JavaScript从* .CSV文件读取数据?

如何使用React读取本地服务器JSON文件?

如何使用Javascript读取本地文件(从Electron App运行)

用JavaScript读取本地JSON文件

如何读取包含数组的PHP文件

如何读取本地json文件并显示

使用子数组在php(或javascript)中读取Json文件

使用SwiftyJSON读取本地JSON文件

ionic使用$ cordovaFile读取本地json文件

使用 Clojure 从本地文件中读取 JSON?

如何使用SwiftyJSON读取数组中的JSON数据?

如何使用http get从本地Json文件加载数据?

如何使用Javascript读取本地文本文件并逐行读取?

如何使用javascript将.txt文件的内容作为数组读取?

如何读取包含多条记录的json文件

如何使用Papa Parse读取本地文件?

如何使用dc.js从JSON文件读取数据?

如何使用 Fetch API 上传文件并包含 JSON 数据?

如何从GIT Repo读取文件数据。无需使用JGIT API将其克隆到本地

如何仅使用JavaScript正确读取json文件

读取包含本地文件的SAM文件

如何使用Node.js从json文件读取数据并将读取的数据显示为html?

如何读取JSON的内部数组数据?

如何从URL读取JSON数组数据