JSON中的关联数组解码

时间:2011-11-03 09:38:49

标签: php javascript json

我正在尝试根据数据库中的信息更改元素列表的类。我认为简单的方法是通过一个数组。我在php端构建数组如下。

 $setClassResult = array();
 while($row = mysql_fetch_array( $result ))
 {
 $setClassResult= array_push_assoc($setClassResult, $row['item_id'], $row['parent']);
 }  
 echo json_encode(array($setClassResult));
 break;

给了我......

 [{"830":"0","734":"830","733":"830","732":"830","735":"830","737":"830","736":"830","738":"830","739":"830","740":"830","741":"830","742":"830","872":"0","869":"872","868":"872","880":"872","964":"872"}]

解码并更改我使用的元素.....

  $.each(data, function(key, val) {
        $("#recordsArray_"+key).toggleClass(val);   
        alert(key+" "+val);
  });

警告发生一次0[object,Object]这是因为我创建数组的方式吗?我注意到的第一件事是JSON周围的[]

2 个答案:

答案 0 :(得分:2)

无需添加额外数组,请尝试:

echo json_encode($setClassResult);

答案 1 :(得分:0)

您的结果是对象格式数组:

 [{"830":"0","734":"830","733":"830","732":"830","735":"830","737":"830","736":"830","738":"830","739":"830","740":"830","741":"830","742":"830","872":"0","869":"872","868":"872","880":"872","964":"872"}]

因此,当您进行迭代时,它会首先遍历数组并进行迭代。说关键是0& value是一个object.so,如果你稍后迭代一个对象的值,你就会得到它

或作为soju,如果你不需要将它存储在对象数组中,而是单个对象&迭代一次。