更新
因此JQuery.post()函数接收有效的JSON。我知道函数调用中的属性“json”应该已经足以获得原始数组,并且没有必要使用.parseJSON()。我猜这就是为什么我在使用这个函数时会出现语法错误。
但不知何故我仍然无法在没有.parseJSON()的情况下访问数组。事实上,当我使用typeof(数据)时,它仍然是一个字符串。我可以将它写入控制台,它仍然是有效的JSON。
如何使用我的数组(最初通过json_encode()编译一次的PHP数组)作为JavaScript中的常规关联数组?
原始帖子
我几天都遇到这种语法错误,这让我发疯了。我阅读了很多帖子,我知道这一定是一件我发现的超级简单的事情。请帮忙。提前谢谢。
var institute = $.post("../libraries/load_content.php",
{
funct: "getInstituteAddress",
ins_name: "Institut für Informatik",
ins_city: "Kiel"
}, "json");
institute.done(function(data) {
alert(data);
var ins_data = $.parseJSON(data); // <-- throws syntax error
$("#street").empty().val(ins_data['ins_street']);
$("#number").empty().val(ins_data['ins_number']);
$("#postalcode").empty().val(ins_data['ins_postal_code']);
}, "json");
institute.fail(function(data) {
console.log("Retrieving institute data failed. Returned:"+data);
});
JQuery.post()函数调用php脚本,该脚本从DB获取所需数据并返回带有json_encode()的关联数组。
到目前为止,此工作正常。
{"ins_name": "Institut für Informatik",
"ins_street": "HRSl",
"ins_number": "42",
"ins_postal_code": "24118",
"ins_city": "Kiel"}
上面我提醒返回的字符串,JSONLint validator告诉我它是有效的JSON。
所以我将String直接复制到parseJSON()调用中。工作得很好。为什么不用变量?
这是我试过的: