将.json文件中的项目分配给javascript中的变量

时间:2014-01-10 06:07:09

标签: javascript ajax json html5

我有data1.json个文件

[     {         “BID”:“4569749”,     },     {          “BID”:“466759”,     },     {         “BID”:“4561149”,     }, ]

我想在另一个abdv.js文件中调用此.json文件,并将BID分配给变量数组

var R1;

R1 = ['4569749', '466759', '4561149']的值 我怎么能这样做?

.html文件(请注意:我只指定与此quetsion相关的部分并删除其他部分)

代码如下:

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="abdv.js"></script>
<script>

    loadABCD();

   </script>

abvd.js

代码如下:

function loadABCD()
    {


  var R1 = [];
$.get('data1.json', function (data) {
    var parsedArr = JSON.parse(data),
    i = 0, l = parsedArr.length;
    for (i; i < l; i++) {
        R1.push(parsedArr[i].BID);
    }
});




for(k=0;k<R1.length;k++)
 {
    document.write(R1);
}   
        // i will use R1 for later processing another function

    //  for(k=0; k<R1.length; k++)
    //  {
    //  obj = loadLevel4Obj(R1[k]);
    //  scene.add(obj);
    //    } 




    }

我还需要帮助将.json文件读入javascript JSON对象。我怀疑我的json文件的格式是否正确。我需要在html文件中指定任何其他与jquery相关的库吗?如何检查BID是否正确存储在变量R1中。

3 个答案:

答案 0 :(得分:3)

假设您已将json文件读入javascript JSON对象(您是否也需要帮助?)

var R1 = new Array();    

for(var i= 0 ; i< myJSON.length; i++){
   R1.push(myJSON[i].BID);
}

[编辑]

你的document.write正在进行任何阅读之前。

删除它。

将一个console.log放在你的$ .get();

的匿名回调中

让它看起来像这样:

$.get('data1.json', function (data) {
    var parsedArr = JSON.parse(data),

    for (i = 0; i < parsedArr.length; i++) {
        R1.push(parsedArr[i].BID);
    }


    for(i=0; i< R1.length; i++)
      console.log("item " + i + " = " + R1[i]);
});

此外,如果您的json文件看起来像这样:

[ { "BID" : "4569749", }, { "BID" : "466759", }, { "BID" : "4561149", }, ]

然后需要修复它以删除对象内部的无关逗号。它应该是这样的:

[ { "BID" : "4569749" }, { "BID" : "466759" }, { "BID" : "4561149" } ]

我没有对此进行过测试,但它看起来应该对我有用。

答案 1 :(得分:0)

var R1 = [];
$.get('file.json', function (data) {
    var parsedArr = JSON.parse(data),
    i = 0, l = parsedArr.length;
    for (i; i < l; i++) {
        R1.push(parsedArr[i].BID);
    }
});

答案 2 :(得分:-1)

获取带有ajax的json文件,然后处理它并分配给R1:

function ajaxGetJson(url, callback){
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            callback(eval(xmlhttp.responseText));
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

var R1;
ajaxGetJson('file.json', function(obj){
   R1 = obj.map(function(item){ return item.BID });
});

一些意见:

  • 我使用的是eval而不是JSON.parse,因为你的.json可能不是严格的 json格式(作为你的例子)

    < / LI>
  • 由于问题标记为html5,您的浏览器肯定支持.map方法

来自玻利维亚拉巴斯的欢呼声