$.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 和 JQuery 从 PHP 文件中获取数据