如何使用以下格式获取json数据?

时间:2014-02-23 14:13:26

标签: javascript jquery json

我有一个json文件来获取测试结果列表。 下面是json文件。还有一小段jquery。 我试图从json获取测试ID并将它们显示为无序列表。 我怎么能这样做?

[
         {
               "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>

5 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

尝试

Fiddle Demo

var ul = '';
for (var i in data) 
{
    ul += '<li>'+data[i]['Test'].id+'</li>';
}
$('#el').append($('<ul/>').html(ul));

答案 2 :(得分:0)

遍历数组中的项目并为每个id附加节点。

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

fiddle here

答案 3 :(得分:0)

您可以data[i]['Test'].iddata[i].Test.id,因为名称中没有空格。

答案 4 :(得分: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