【发布时间】:2017-08-21 13:08:59
【问题描述】:
我正在尝试使用 jQuery / JavaScript 解析作为 ajax 响应从 PHP 文件发送的 JSON 字符串。
Ajax 调用:
<script>
$(document).ready(function(){
var query = $("#editor").html().replace(/(<([^>]+)>)/ig,"");
$.ajax({
type: "POST",
url: "app/query_db.php",
data: "q="+query,
success: function(resp){
if(resp) {
alert("Response : "+resp);
$("#res_data").html(resp);
}
else{
alert("Response: Failed")
}
});
return false;
});
});
</script>
PHP 文件:
$db_conn = new db_connect();
$conn = $db_conn->connectToDB($DBHost,$DBName,$DBUser,$DBPwd);
$query_res = array();
if (fill_numeric_array_with_query_assoc($query_res, $sql_query, $conn)) { // Function to execute the query and fill the result
//do nothing
} else {
echo("Error description: " . mysqli_error($conn)); // Error message to display if failed to fetch the data
exit();
}
$data = json_encode($query_res);
echo $data;
Result: [{"uid":"admin","pwd":"xyz"},{"uid":"guest","pwd":"abc"}]
每当我尝试解析上述 JSON 字符串时,我都会以 0 和 1 作为键,而将其他内容作为值。奇怪的是,当我复制此结果并将其分配给 JavaScript 中的变量时,它会正确解析字符串。
在尝试将其解析为 AJAX 响应时不知道出了什么问题。
将 JSON 字符串解析为 AJAX 响应时的表格格式:
在 javascript 中分配给变量时的响应:
uid pwd
admin xyz
guest abc
【问题讨论】:
-
"每当我尝试解析上面的 json 字符串时,我都会以 0 和 1 作为键,而将其他内容作为值。"是的,没错,因为它是一个包含两个对象的数组。第一个对象在数组中的索引 0 处,第二个对象在索引 1 处。你期待什么?
-
你的 JSON 是一个数组,它有数字键,因此
0和1? -
你想用这个对象做什么?想要追加到表格中?
-
“你想用这个对象尝试什么?想在表格中追加?– Muhammad Akber Khan” - 是的。我正在尝试用它创建一个表
-
"每当我尝试解析上面的 json 字符串时,我都会以 0 和 1 作为键,而将其他内容作为值。"是的,没错,因为它是一个包含两个对象的数组。第一个对象在数组中的索引 0 处,第二个对象在索引 1 处。你期待什么? – ADyson" - 我正在尝试通过解析 json 字符串来创建一个表,并希望在将结果分配给 javascript 中的变量时类似于下面的响应:uid pwd admin xyz guest abc