尝试解析json数组时返回未定义

时间:2016-02-29 13:57:24

标签: php jquery arrays ajax

我是一个php数组,我转换为json并回显我想用jquery检索。回显的json采用以下格式:

$.ajax({
    type: 'GET',
    url: 'get-events.php',
    dataType: "json",
    cache: false,
    success: function (result) {
        alert(result[start]);
    },
});

当我尝试使用Ajax GET解析并显示JSON时,会返回'undefined'。我的ajax代码是:

for (var key in result) {
 if (result.hasOwnProperty(key)) {
     result[key].id

   }
  }

更新:

感谢您的回复。我终于使用

对其进行了排序
<select id="users-dropdown" style="width:200px; display:block;"></select>

        <script>        

        function buildUserList(){
            console.log(branchData)
                   for (var i=0;i<branchData.length;i++){
               var branchesDropdown = document.getElementById('users-dropdown');
                branchesDropdown options[branchesDropdown.options.length] = new Option(branchData[i].all);
            }

        }
        var my_url = 'branches.json';
        var branchData;
        var json = (function () {
            var json = null;
            $.ajax({
                'async': false,
                'global': false,
                'url': my_url,
                'dataType': 'json',
                'success':
                // function (data) {
                    branchData = data.all;
                    buildUserList();
                }
            });
            return json;
        })(); 
        </script>

2 个答案:

答案 0 :(得分:1)

您的结果是一个表,因此您必须指定索引:result [index]

然后,json是一种{“key”:“value”}格式,其中key是一个字符串。在您的代码中,您使用了start,这是一个未定义的变量。

所以你应该尝试:

alert(result[0]["start"]);

答案 1 :(得分:0)

您似乎没有以正确的方式使用结果值。结果是一个对象数组。如果要访问第一个元素的起始值,则必须使用result[0].start

要访问所有值,您应该使用for循环遍历数组。

for (var i = 0; i < result.lenght; i++) {
    // result[i].start
}