Не удалось проанализировать файл JSON в JavaScript - PullRequest
2 голосов
/ 12 апреля 2011

Я использую JavaScript для разбора файла JSON.Но я не могу понять, какую ошибку я получаю.Может кто-нибудь, пожалуйста, помогите мне в этой теме.

** Мой код: HTML-файл:

<title>JSON Parser</title> 
<script type="text/javascript">  
    function webGLStart() {  
       var request = new XMLHttpRequest();
       request.open("GET","test.json");
       var my_JSON_object = JSON.parse(request.responseText);
     alert (my_JSON_object.result[0]);
    }

</script>  
</head>  
<body onload="webGLStart();">  
</body>  
</html> 

test.json Файл:

{"result": [0,1,2,3,4] }

предупреждение в приведенном выше кодене показывает ничего на веб-странице.

Ответы [ 3 ]

6 голосов
/ 28 августа 2011

С jQuery все просто:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">  
    $.getJSON('test.json', function(data) {         
    $.each(data, function(key, val) {
        console.log("key=" + key + " " + "val=" + val);
    });
});

Более подробный пример кода можно посмотреть здесь: http://api.jquery.com/jQuery.getJSON/

3 голосов
/ 12 апреля 2011

Ваш код для выполнения запроса Ajax неверен.

Во-первых, var request = new XMLHttpRequest(); не будет работать в случае IE 5, 6; то есть вам нужно сделать кросс-браузерный объект из XMLHttp

Во-вторых, request.open("GET","test.json"); не означает, что этот запрос является асинхронным ... то есть вы пропустили третий логический параметр (true / false)

В-третьих, вы не отправляете запрос на веб-сервер, используя:

request.send(null);

Попробуйте следующую ссылку для Ajax:

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

Попробуйте эту ссылку для анализа JSON с использованием Javascript:

http://json.org/js.html

Надеюсь, это поможет.

2 голосов
/ 12 апреля 2011

Ajax является асинхронным. Вы пытаетесь прочитать ответ до того, как он поступит с сервера. Ох, хуже этого. Вы открываете запрос, но фактически не отправляете его.

Вам нужно использовать обработчик событий при изменении состояния для запуска кода после получения ответа, и вам нужно отправить запрос на сервер, прежде чем вы сможете получить ответ. .

* * * * * * * * * * * * * * * * * * * * * * * *.
...