javascript - 从服务器的 AJAX 请求返回的数组(编码和解析的 JSON)是否具有 'results' 属性?

标签 javascript jquery ajax json object-properties

我有一个通过 AJAX 请求从服务器获取数据的函数。异步回调获取数据,然后将其显示到 DOM。

我知道 getJSON AJAX 请求应该返回一个字符串数组(并且会自动解析以供我使用)。因此,我想获取该字符串数组并使用 jQuery 的 $.each 方法循环遍历它们,该方法采用 2 个参数 - 集合和对集合中每个项目进行操作的函数。

相关代码如下:

setInterval(function () {
            $.getJSON("https://api.parse.com/1/classes/chats")
            .done(function(dataReceived){  
                $('.messages li').remove();
                $.each(dataReceived.results, function (index, value) {
                    $('.messages').append('<li>' + value.text + '</li>')
                })    
            });
        }, 2500);

我的问题是关于从 getJSON 请求返回的数组 - 在我的函数中它是一个名为“dataReceived”的参数...

这是一个已经被解析的字符串数组,所以它已经准备好 JavaScript 了,对吗?

另外,这是我问题的主要症结 - 我不知道 Javascript 数组上有一个“结果”属性?或者只是 getJSON 函数返回一个具有 results 属性的对象/数组?我在这里有点迷失……如果有人能为我澄清这一点(无论是直接回答还是使用适当的文档),那就太好了。因为如果我只是将“dataReceived”传递到 $.each-iterator 中,代码将不起作用。它需要“结果”属性 (dataReceived.results)。

最佳答案

I'm aware that the getJSON AJAX request is supposed to return an array of strings (and is automatically parsed for my use).

不完全是。 jQuery.getJSON() 会将 JSON 响应解析为等效的 JavaScript 实例和值。但是,这些值是什么完全取决于响应。

I wasn't aware that there's a 'results' property on a Javascript array?

在本例中,由于请求是解析,their basic query responses follow the format you're finding (用评论修改):

The result value is a JSON object that contains a results field with a JSON array that lists the objects.

{               // root object
  "results": [  // array of results
    {           // individual result object
      // ...
    },
    {           // another result object
      // ...
    }
  ]
}

在回调中,dataReceived 将等于通过解析此类 JSON 数据定义的“rootObject

关于javascript - 从服务器的 AJAX 请求返回的数组(编码和解析的 JSON)是否具有 'results' 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21999888/

相关文章:

javascript - 如何使用 JavaScript 向我的文件系统发出 AJAX 请求?

javascript - angularJS 路由 templateUrl

javascript - 试图弄清楚如何安装这个 jquery 脚本

javascript - 如何区分类中的每个复选框元素

javascript - 如何使用 css/jquery 制作响应式绝对定位元素

javascript - 调用 $.ajax 正在改变我的窗口滚动?

javascript - 使用ajax获取json数组

javascript - 当我真正想要的时候,类型 'Object' 上不存在属性 - Angular2+

javascript - 仅对 div 中的最新输出行进行样式设置

javascript - deferred.fail()后如何继续执行JS