我熟悉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);
但这不起作用。我肯定在这里做了一些非常愚蠢的事情,我有点惭愧 - 但我确实需要一些帮助才能让自己开始......
答案 0 :(得分:4)
reponseText
是XMLHttpRequest
对象的属性,在请求后它不会是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);
});
});