$.ajax 从 php 获取 json_encode($arr) 之后的对象,但是如何在 jQuery 中获取键和值?

Posted

技术标签:

【中文标题】$.ajax 从 php 获取 json_encode($arr) 之后的对象,但是如何在 jQuery 中获取键和值?【英文标题】:$.ajax get an object after json_encode($arr) from php, but how to get key and value in jQuery? 【发布时间】:2015-06-18 17:03:57 【问题描述】:

1

php 中:

$arr = array( 10=>"ten", 5=>"five", 2=>"two"); return json_encode($arr);

在 JS 中 - $.ajax():

success: function(data) console.log(data);

2

我在控制台看到的是:

Object 2: "two", 5: "five", 10: "ten",

我想使用for(var i=0; i< data.length,i++) 但失败了。

最终以这种方式工作:for(var i in data)

3

我的问题:为什么要对数组进行排序?我希望数组保持未排序。

有人帮助我吗?

【问题讨论】:

这可能有助于***.com/q/6551949/3639582 它们已排序,因为您将某些值分配给整数索引数组,即:[0: null, 1: null, ... 5: "five"] 查看this帖子 【参考方案1】:

JSON 不能表示稀疏数组,如果可以,这就是您的数据。 所以你得到一个对象而不是数组,并且没有标准规定对象属性必须以任何特定方式排序或根本不排序。 您可以尝试将数据放在 2 个数组中

$arr = array( 'indecies'=>array(10,5,2), 'values'=>array("ten","five","two") ); 
return json_encode($arr);
for(var i=0; i< data.indecies.length,i++)
    // do something with
    //data.indecies[i]
    //data.values[i]

【讨论】:

以上是关于$.ajax 从 php 获取 json_encode($arr) 之后的对象,但是如何在 jQuery 中获取键和值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ajax 函数从 php 服务器获取会话变量? (PHP HTML JS Ajax)

使用 AJAX 从 PHP 文件中获取响应

PHP 从 AJAX 帖子中获取数据并过滤它

使用 Ajax 和 JQuery 从 PHP 文件中获取数据

PHP、AJAX、HTML、MySQL,单击按钮从数据库中获取信息

从 PHP foreach 循环中获取 Ajax 变量(第二部分)