【问题标题】:Read JSON data values by keys in $.each loop在 $.each 循环中按键读取 JSON 数据值
【发布时间】:2019-02-08 14:17:11
【问题描述】:

我已经从控制器(通过 ajax)返回了 JSON 数据,并且想要访问这些数据。这是一个对象列表(数组):键值,所以我想使用 .each() 来访问所有数据。像这样的数组:

[{"filePath":"Desktop.zip","fileStatus":"Uploaded"},{"filePath":"Desktop\\dates.xml","fileStatus":"Uploaded"}]

代码是:

$.ajax({
                    url: '@Url.Action("GetFilesNames", "Home")',
                    type: 'POST',                    
                    success: function (data) {                      

                        $.each(data, function (value) {
                            console.log(value['filePath'], value['fileStatus']);

                            });
                    }
                });

但是 data.each 值是未定义的。

所以我尝试 console.log 所有数据,json.stringify 它,解析它(但不知何故有错误),并解析 stringyfied 版本,但没有任何意义。即使我使用此字符串化版本(路径)或已解析的字符串化版本(listOfFiles)与 .each - 结果相同:未定义。

【问题讨论】:

  • success 函数的顶部,data 是一个数组。这就是你想要的。 不要尝试将其转换为 JSON(没有用)或 JSON(因为它不是 JSON)。
  • @Quentin 好的,我明白了。但是如果我有一个数组,那么我应该怎么做才能通过它的键获取数据值呢?为什么我的代码 $.each(data, function (value) { console.log(value['filePath'], value['fileStatus']); }); 不起作用?

标签: javascript json ajax


【解决方案1】:

the documentation for jQuery.each:

回调
类型:函数(Integer indexInArray, Object value)

现在查看您的代码:

$.each(data, function (value) {

您正在尝试从 first 参数中读取属性,该参数是一个 Integer (array() 中的索引而不是值。您需要从 second 参数中读取属性。

 $.each(data, function (index, value) {

【讨论】:

  • 圣牛......现在我明白了......它正在工作!谢谢 !现在感觉好傻
猜你喜欢
  • 2013-11-26
  • 2011-08-23
  • 1970-01-01
  • 2015-07-12
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多