2016-07-19 5 views
0

Я хотел получить код json на этом page.Загрузка файла JSON javascript

Это кодируют 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]

ли я что-то пропустил?

+2

Я думаю, что вам нужно выполнить 'alert (obj);' в функции успеха. Поскольку obj имеет данные. –

+0

также предупреждает об объекте, всегда будет давать вам '[Object Object]' из-за того, как [Object.prototype.toString] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Object/toString). Вы должны войти в консоль с помощью [console.log()] (https://developer.mozilla.org/en-US/docs/Web/API/Console/log) –

+0

Я не понял вас. –

ответ

1

В вашей переменной кода 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); 
+0

yep. моя вина. Я исправил это. –

+0

Я хочу, чтобы предупреждение из функции ajax –

+0

не сработало. –

Смежные вопросы