循环通过JSON编码的PHP数组
我有一个PHP数组,其中有一个表id作为键,一个表字段作为值。
示例PHP:
while($row = mysql_fetch_array($result)) { $id = $row['id']; $array[$id] = $row['some_field']; }
然后我使用json_encode($array)
得到类似的东西:
{"id1":"value1","abc":"123","xyz":"789"}
我怎样才能在jQuery中循环使用它? 从我到目前为止发现的情况看来,我似乎需要知道关键。 所以:
var obj = jQuery.parseJSON(jsonVar); alert(obj.abc); //prints 123
但是,如果因为它们是动态的而不知道密钥,我怎么能得到这些值呢?
我需要重构我的PHP数组吗?
将php中的关联数组编码为JSON对象后,它不再是数组,而是具有键和值的对象。 你可以使用for..in
在javascript中迭代它们
for (var key in obj) { console.log(obj[key]); }
注意: for..in
不是自定义顺序,如果您需要确保顺序,则必须将数组编入索引,而不是key=>value
,而是使用for
循环(或while
)。
您可以使用Object.keys
获取数组的键,然后循环它们。 与for...in
不同,这使您可以在处理之前选择.sort()
键:
var keys = Object.keys(obj).sort(); // sorting is optional for (var i=0; i
在旧版浏览器中,您需要使用polyfill来启用Object.keys
方法。 MDN在其文档页面上有一个 。