簡體   English   中英

從json文件導入時,如何修復未定義對象數組的變量?

[英]How can I fix variables of an array of objects being undefined when being imported from a json file?

我正在創建一個網站來練習我的編碼,但這樣做時遇到了一個問題。 我正在嘗試使用forloop從json文件導入數據,並且變量返回為未定義。 我認為這與foreach中的i變量有關,但我可能是錯的。 任何幫助深表感謝。 謝謝!

<script>
    $.getJSON('package.json', function(data){
        for(var i in data)
        {
            var username = i.username;
            var value = i.value;
            var tokens= i.tokens;
            $(".list-group").append('<li>' + username + ' has deposited $' + value + ' in ' + tokens + ' tokens</li>');
        }
    });
</script>

這是json文件的副本

{
  "u1":
  {
    "username": "Username1",
    "tokens": 2,
    "value": 26
  },
  "u2":
  {
    "username": "Username2",
    "tokens": 4,
    "value": 292
  },
  "u3":
  {
    "username": "Username3",
    "tokens": 10,
    "value": 127
  },
  "u4":
  {
    "username": "Username4",
    "tokens": 3,
    "value": 12
  }
}

如果data是一個數組,則i將是index的Integer值字符串。

您需要使用data[i].usernamedata[i].valuedata[i].tokens


如果data是對象,則無需遍歷數據

您將需要data.usernamedata.valuedata.tokens代替

如果json中的數據是對象數組,請使用它;

    <script>
            $.getJSON('package.json', function(data){
                for(var i in data)
                {
                    var username = data[i].username;
                    var value = data[i].value;
                    var tokens= data[i].tokens;
                    $(".list-group").append('<li>' + username + ' has deposited $' + value + ' in ' + tokens + ' tokens</li>');
                }
            });
</script>

否則用它

 <script>
            $.getJSON('package.json', function(data){

                    var username = data.username;
                    var value = data.value;
                    var tokens= data.tokens;
                    $(".list-group").append('<li>' + username + ' has deposited $' + value + ' in ' + tokens + ' tokens</li>');

            });
</script>

暫無
暫無

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

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