Как получить данные JSON в следующем формате?

0

У меня есть json файл, чтобы получить список результатов теста. Ниже приведен json файл. И короткий фрагмент jquery. Я пытаюсь получить идентификатор теста из json и отображать их как неупорядоченный список. Как я могу это сделать?

[
         {
               "Test":{
               "id":"2949",
               "bk_session_id":"qpmz3gd6xw",
               "series_type":"Cars Series",
               "book_type":"A",
               }
         },
         {
               "Test":{
               "id":"2950",
               "bk_session_id":"qpmz3gd6xw",
               "series_type":"Cars Series",
               "book_type":"A",
               }
         }
]


<script type="text/javascript">

     $.getJSON("http://localhost:8888/tests/students.json?id=qpmz3gd6xw", function(data) {
     for (var i in data) 
        {
            alert(data[i].[Test].id);
        }
     }); 

</script>
  • 0
    Может быть, так и должно быть: alert (data [i]. ['Test']. Id); Потому что тест без кавычек является переменной.
  • 0
    оповещение (данные [I] [ 'Test'] идентификатор..); я получил ошибку, если я поставил кавычки
Показать ещё 1 комментарий
Теги:

5 ответов

0
Лучший ответ

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

alert(data[i]['Test'].id);

Кроме того ваш JSON не является действительным, удалите завершающий , после каждого book_type.

[
         {
               "Test":{
               "id":"2949",
               "bk_session_id":"qpmz3gd6xw",
               "series_type":"Cars Series",
               "book_type":"A"
               }
         },
         {
               "Test":{
               "id":"2950",
               "bk_session_id":"qpmz3gd6xw",
               "series_type":"Cars Series",
               "book_type":"A"
               }
         }
]

http://jsfiddle.net/ef7Nq/

  • 0
    оповещение (данные [I] [ 'Test'] идентификатор..); я получил ошибку, если я поставил кавычки
  • 0
    @ user3343433 Вынь . до [Test] , alert(data[i]['Test'].id);
0

Прокрутите элементы в массиве и добавьте узлы для каждого идентификатора.

$.each(obj, function (i, item) {
    ul.append($('<li>' + item.Test.id + '</li>'));
});

скрипка здесь

0

Пытаться

Fiddle Demo

var ul = '';
for (var i in data) 
{
    ul += '<li>'+data[i]['Test'].id+'</li>';
}
$('#el').append($('<ul/>').html(ul));
  • 0
    Я думаю, что вы имели в виду var ul = '' ;
  • 0
    @BillCriswell ты обновил братан. :)
Показать ещё 5 комментариев
0

Вы можете попробовать следующее:

alert( data[i].Test.id );

Полный код:

$.getJSON("http://localhost:8888/tests/students.json?id=qpmz3gd6xw", function(data) {
     for (var i in data) {
            alert( data[i].Test.id );
     }
});

Demo

0

Вы можете делать data[i]['Test'].id или data[i].Test.id поскольку в имени нет места.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню