循环有效的JSON并将每个值保存在变量中

时间:2010-06-25 14:40:49

标签: php javascript jquery json

我正在使用jQuery。

这是我的第二篇文章,使我的旧问题更清楚。 我使用jQuery $.ajax function向PHP脚本发出了Ajax请求,并且PHP脚本返回了此JSON对象,当我使用链接文本进行测试时,它表示它是有效的。 我正在用success fonction

处理这个JSON响应

php脚本是

$requete = mysql_query("SELECT * FROM annotations WHERE annot_doc_id = '$cours_selected' and annot_id_auteur  = '$annot_id_auteur'");
while($obj = mysql_fetch_object($requete)) {
    $arr[] = $obj;
}
// echo '{"exemple":'.json_encode($arr).'}';
echo json_encode($arr); 

PHP运行良好,它根据我的需要动态地改变响应。 对于特定的参数,我得到了这个JSON响应

[
{
    "id_annotation": "1",
    "annot_doc_id": "page_de_test.html",
    "annot_id_auteur": "2",
    "anno_startOffset": "47",
    "annot_startContainer": "id-aaa",
    "annot_endOffset": "88",
    "annot_forme": "1",
    "annot_value": "dispositif physique fait pour \n  stocker ",
    "annot_obj": "1",
    "annot_area": "",
    "annot_date": "vendredi 25 juin 2010 10:38:07" 
},
{
    "id_annotation": "4",
    "annot_doc_id": "page_de_test.html",
    "annot_id_auteur": "2",
    "anno_startOffset": "107",
    "annot_startContainer": "ident-77",
    "annot_endOffset": "194",
    "annot_forme": "1",
    "annot_value": "crobaties avec ses doigts, mais \u00e9cartons ce cas). Avec un \n  emplacement d\u2019information ",
    "annot_obj": "1",
    "annot_area": "",
    "annot_date": "vendredi 25 juin 2010 10:38:33" 
}
]

我想制作一个循环,每次在变量中保存“id_annotation”,“annot_doc_id”,“annot_id_auteur”,“anno_startOffset”等等,以便对这些变量做一些事情。 我怎么能这样做?

PS:有些人提出了$.each function.

1 个答案:

答案 0 :(得分:1)

一个简单的for循环就可以了:

var objects = $.parseJSON(input);
for (var i = 0; i < objects.length; i++) { 
    alert(objects[i].id_annotation);
}

或者,如果你想使用jQuery的.each()函数:

var objects = $.parseJSON(input);
jQuery.each(objects, function() {
    alert(this.id_annotation);
});