Javascript 如何获取以下格式的json数据?

Javascript 如何获取以下格式的json数据?,javascript,jquery,json,Javascript,Jquery,Json,我有一个json文件来获取测试结果列表。 下面是json文件。和jquery的一小段。 我试图从json中获取测试id,并将它们显示为无序列表。 我该怎么做 [ { "Test":{ "id":"2949", "bk_session_id":"qpmz3gd6xw", "series_type":"Cars Series", "b

我有一个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>
[
{
“测试”:{
“id”:“2949”,
“bk_会话_id”:“qpmz3gd6xw”,
“系列\ U型”:“汽车系列”,
“图书类型”:“A”,
}
},
{
“测试”:{
“id”:“2950”,
“bk_会话_id”:“qpmz3gd6xw”,
“系列\ U型”:“汽车系列”,
“图书类型”:“A”,
}
}
]
$.getJSON(“http://localhost:8888/tests/students.json?id=qpmz3gd6xw,函数(数据){
用于(数据中的var i)
{
警报(数据[i].[Test].id);
}
}); 

您缺少了
Test
周围的引号,它应该是一个字符串,并删除前面的点

alert(data[i]['Test'].id);
此外,您的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"
               }
         }
]
试试看

var-ul='';
用于(数据中的var i)
{
ul+='
  • '+数据[i]['Test'].id+'
  • '; } $('#el').append($('
      ').html(ul));
    循环遍历数组中的项,并为每个id追加节点

    $.each(obj, function (i, item) {
        ul.append($('<li>' + item.Test.id + '</li>'));
    });
    
    $。每个(对象、功能(i、项){
    ul.追加($(“
  • ”+item.Test.id+”
  • ); });

    您可以执行
    数据[i]['Test'].id
    数据[i].Test.id
    ,因为名称中没有空格。

    您可以尝试以下操作:

    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 );
         }
    });
    

    可能应该是这样的:警报(数据[i].[Test'].id);因为不带引号的测试是一个变量.alert(数据[i].[Test'].id);如果我将quotesSorry、alert(数据[i]['Test'].id)放入,则会出现错误;没有,我想你指的是
    var ul=''
    ;没问题!您确实需要
    ='
    但是,
    ul
    会返回“undefined
  • ”。@BillCriswell为什么
    undefined
    这是因为
    ul
    undefined
    。它只是将其转换为用于串联的字符串。对,如果没有
    ='
    ,它会给您带来问题。alert(data[i].'Test'].id);如果我把quotes@user3343433在
    [Test]
    之前取出
    警报(数据[i]['Test'].id)
    
    $.getJSON("http://localhost:8888/tests/students.json?id=qpmz3gd6xw", function(data) {
         for (var i in data) {
                alert( data[i].Test.id );
         }
    });