Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.json文件中的项分配给javascript中的变量_Javascript_Ajax_Json_Html - Fatal编程技术网

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

将.json文件中的项分配给javascript中的变量,javascript,ajax,json,html,Javascript,Ajax,Json,Html,我有一个data1.json文件 [ { “投标书”:“4569749”, }, { “投标书”:“466759”, }, { “投标书”:“456149”, }, ] 我想在另一个abdv.js文件中调用这个.json文件,并将出价分配给一个变量数组 var R1; i、 eR1=['4569749','466759','4561149']的值 我该怎么做 .html文件(请注意:我只指定与此任务相关的部分,并删除了其他部分) 代码如下: loadABCD(); abvd.j

我有一个
data1.json
文件

[ { “投标书”:“4569749”, }, { “投标书”:“466759”, }, { “投标书”:“456149”, }, ]

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

var R1;
i、 e
R1=['4569749','466759','4561149']的值
我该怎么做

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

代码如下:


loadABCD();

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);
    //    } 




    }
函数加载abcd()
{
var R1=[];
$.get('data1.json',函数(数据){
var parsedArr=JSON.parse(数据),
i=0,l=parsedArr.length;
对于(i;i对于(k=0;k假设您已将json文件读入javascript json对象(您也需要帮助吗?)

然后需要对其进行修复,以删除对象中的多余逗号。它应该如下所示:

$.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]);
});
[ { "BID" : "4569749", }, { "BID" : "466759", }, { "BID" : "4561149", }, ]
[ { "BID" : "4569749" }, { "BID" : "466759" }, { "BID" : "4561149" } ]

我还没有测试过这个,但它看起来应该对我有用。

使用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格式(如您的示例所示)

  • 由于问题带有标签
    html5
    ,您的浏览器肯定支持
    .map
    方法

干杯,来自玻利维亚拉巴斯

var R1=[];
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);
    }
});
$.get('file.json',函数(数据){ var parsedArr=JSON.parse(数据), i=0,l=parsedArr.length; 对于(i;i
for..in
循环抛出数组?您将在此循环中获得
数组中的所有共享属性。prototype
。我无法使其工作:我将更具体地说明我的问题您做错了一堆小事情…我将编辑我的答案。OP未提及jQuery…请编辑您的答案以删除所述引用。@Pin为什么?他的Json文件不是严格的Json格式,所以使用
Json.parse
会导致解析错误。如果像本例中那样明智地使用Eval,则可以使用Eval。
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 });
});
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);
    }
});