从Ajax-JSON中提取元素

时间:2012-07-06 20:25:53

标签: javascript ajax json object

我熟悉PHP,但我是AJAX的初学者,JSON让我发疯。

我的PHP脚本提供了一个简单的JSON字符串,例如

    {"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, 
    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ] } I 

按如下方式检索它:

var fillDataMasterTable = $.ajax({          
    url: "/php/PrepareGoogleDataTable.php" +"?"+
                "SensorString="+SensorString + "&"+
                "TableType=" + TableType +"&"+
                "NoAbscissaBins=" + NoAbscissaBins + "&"+
                "DataTableName=" + DataTableName +"&"+
                "TimeUnit=" + TimeUnit +"&"+
                "TimeStart=" + TimeStart,          
    dataType:'json',          
    async: false          
    }).responseText;    

 $('#debug_div').html(fillDataMasterTable);

工作正常,我收回了我的JSON字符串。但是我如何访问各个值?我试过了:

          $('#debug_div').html(fillDataMasterTable.bindings);

但这不起作用。我肯定在这里做了一些非常愚蠢的事情,我有点惭愧 - 但我确实需要一些帮助才能让自己开始......

2 个答案:

答案 0 :(得分:4)

reponseTextXMLHttpRequest对象的属性,在请求后它不会是JSON对象。它将是String。它不会遇到,您是否将"dataType"指定为"json"

所以你需要将它转换为json对象:

 fillDataMasterTable = JSON.parse(fillDataMasterTable);

然后你可以访问这样的属性:

 fillDataMasterTable.bindings

答案 1 :(得分:1)

像这样使用Jquery:

$.each(fillDataMasterTable.bindings, function(i, object) {
            $.each(object, bindings(property, value) {
                $('#debug_div').html(value);
            });
        });