从URL读取外部文件/数据,用数据创建JS对象/数组以使用内容

时间:2015-06-25 00:37:52

标签: javascript jquery ajax json

结束目标:从包含此格式的某些数据的给定URL(假设相同的服务器/域):

{"foo":6481,"value":13,"thing":"12_3"}

获取JavaScript代码以读取数据并将其放入数组/对象中,以便可以使用它来绘制"值"在图表上。服务器将自动使用新数据更新链接,但现在只是想弄清楚如何访问"值"

为了测试,我创建了一个.json文件和一个.html文件,我只是想打印' 13'来自"价值"看看我如何访问它,但是无法使用任何东西。我花了很多时间在堆栈溢出上,谷歌试图解决这个问题。这是我认为可以帮助我的最接近的事情:How to create JAVASCRIPT ARRAY from external file JSON,但它不起作用

我为datadata.json尝试了什么:

{"foo":6481,"value":13,"thing":"12_3"}

[{"foo":6481,"value":13,"thing":"12_3"}]

'[{"foo":6481,"value":13,"thing":"12_3"}]'

然后是我的JS文件:

var newArray = new Array ();
    $.ajax({
        async: false,
        url: 'datadata.json',
        data: "",
        accepts: 'application/json',
        dataType: 'json',
        success: function(data) {
            newArray.push(data.value); //or data.name   
        }
    })
    console.log(newArray);

这将打印空括号,并出现此错误: SyntaxError:意外的令牌':'。解析错误。

还尝试了XMLHttpRequest,导致同样的错误:

var jsonArr = new XMLHttpRequest();

jsonArr.open('GET', 'datadata.json', true);
jsonArr.onreadystatechange = function(data) {
    console.log(jsonArr.name);
};
jsonArr.send();

当.json文件数据具有数组的名称时:

data = '[{"foo":6481,"value":13,"thing":"12_3"}]'

使用JSON.parse(数据)工作。

为什么会这样,我怎样才能从URL解析数据?

另外,我不想为此使用PHP。

---工作解决方案,但仍然有.json文件的错误---

var myArray = new Array ();
$.getJSON( "datadata.json", function( data ){
    myArray = data;
        console.log(myArray.value);
});

使用以下格式:

{"foo":6481,"value":13,"thing":"12_3"}

0 个答案:

没有答案