簡體   English   中英

如何將從JSON文件讀取的數據傳遞給其余的Javascript代碼?

[英]How can I pass data read from a JSON file to the rest of my Javascript code?

我是腳本和網絡領域的新手,並且一直在嘗試解決我遇到的一個問題。 我正在從本地JSON文件讀取數據,並且能夠成功使用jQuery.getJSON和jQuery.parseJSON,但是我試圖在getJSON回調函數之外使用數據,並且遇到了問題。 我認為這歸因於我不完全了解執行此操作的正確方法,這就是我在尋求您幫助的地方。 這是我的代碼:

var names = new Array();

$.getJSON('ferries.json', function(data) {
  var jsondata = $.parseJSON(JSON.stringify(data));

  var length = jsondata.nodes.length;
  for (var i = 0; i < length; i++) {
    names[i] = String(jsondata.nodes[i].name);
  }
});

console.log('Names: ' + names[0]);

最后一行返回undefined。 如果要在for循環之后立即編寫該行,它將返回所需的值。 JSON文件的結構如下:

{
  "nodes":[
    {
      "name":"John"
    },

    ...

    {
      "name":"Joe"
    }
  ]
}

任何幫助將不勝感激-謝謝!

編輯:最后一件事,似乎最后一行(console.log(...))在$ .getJSON位之前執行,這也使我感到困惑。

$.getJSON異步運行。 傳遞給它的函數是“回調”,這意味着當getJSON從執行其操作返回時將被調用。

如果要對返回的JSON數據執行某些操作,則必須等待回調執行。

另外, $.parseJSON(JSON.stringify(data))$.parseJSON(JSON.stringify(data))是多余的。 data對象已經是一個可以完美使用的對象,並且其中包含有數據,但是您正在將該對象轉換為JSON字符串,然后立即轉換為對象。 只需按原樣使用data 有關更多信息,請查看jQuery API文檔中的getJSON

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM