加载JSON文件javascript


Loading a JSON file javascript

我想在这个页面上获得json代码。

这是JSON代码:

[{"idStore":"13","0":"13","Name":"1414141414144","1":"1414141414144","Phone":"123456","2":"123456","Email":"tretretr","3":"tretretr","Description":"aaaaaaaaaaaa","4":"aaaaaaaaaaaa","Ville":"zaeazezae","5":"zaeazezae","Address":"aaaaaaaaaaaaaaaaaaaaaa","6":"aaaaaaaaaaaaaaaaaaaaaa","MsPoint":"0","7":"0","idGenre":"14","8":"14","Image":"--","9":"--","Country":"zaeaze","10":"zaeaze","idUser":"21","11":"21","Lat":"0","12":"0","Lng":"0","13":"0"}]

我对ajax一无所知,所以我尝试将php文件输出的内容解析为result.json

$fp = fopen('result.json', 'w');
fwrite($fp, json_encode($stores));
fclose($fp);

我使用这个ajax代码来读取我的result.json文件,因为脚本与JSON输出不在同一页上。

这是我的www文件夹架构:

www -> js -> app.js
    -> inedx.php
    -> Store.php
    -> result.josn

我使用app.js从JSON文件(由Store.php创建)中加载数据并对其进行修改。然后在index.php中使用它。

var da = $.ajax({
    url: "../result.json",
    success: function (data) {
        var obj = JSON.parse(data);
    }
});
alert(da);

结果是:

[Object Object]

我错过什么了吗?

在您的代码中,变量da不是返回的结果,而是ajax函数本身。

JSON的值存储在obj变量中。但是它也是一个对象,你不能只对它使用警报。但是你可以对它的属性发出警报,如下所示:

var da = $.ajax({
    url: "../result.json",
    success: function (data) {
        var obj = JSON.parse(data);
         alert(obj.idStore);  //would show the idStore of the first element in Array
    }
});

如果你想让alert退出ajax功能,你可以做:

var obj;
    $.ajax({
        url: "../result.json",
        success: function (data) {
            obj = JSON.parse(data);
            runIt();
        }
    });
function runIt(){
 alert(obj.idStore);  
}

另一种方法(不推荐):

var obj, done = false;
    $.ajax({
        url: "../result.json",
        success: function (data) {
            obj = JSON.parse(data);
            done = true;
        }
    });
 var int = setInterval(function(){
if(done){ alert(obj.idStore); clearInterval(int);}
}, 100);