我从PHP文件中获得以下JSON回复:
[
{
"color": "black",
"product_name": "Prod2",
"revision": "apps/"
},
{
"color": "green",
"product_name": "Prod1",
"revision": "dev/"
}
]
(在JSONLint上测试好了)
和Javascript:
$(document).ready(function(){
$('.target').keyup(function() {
var package_name = "name";
var package_version = "version";
var filter_results = "filter";
$.post('includes/package_filter.php', { package_name: package_name, package_version: package_version, filter_results: filter_results }, function(return_result) {
obj = JSON.parse(return_result);
alert(obj.product_name);
var existingDiv = document.getElementById('other');
existingDiv.innerHTML = CreateTable(return_result);
});
});
});
return_result似乎不正确,因为我在执行JSON.parse时得到Error: SyntaxError: JSON.parse: unexpected end of data
我也没有进一步走向...
可能有什么不对?
我的PHP文件类似于:
<?php
function package_filter($package_name, $package_version, $filter_results){
foreach ($descriptions as $descriptions_display) {
...
$array_to_return[] = array('color' => $color , 'product_name' => $descriptions_display['product_name'] , 'revision' => $descriptions_display['revision']);
}
return json_encode($array_to_return);
}
?>
我的目标是使用CreateTable
函数创建一个表,但以前出现了问题。
答案 0 :(得分:1)
在处理JSON
时,只需将post()
方法中的第四个参数设置为json
:
$.post('includes/package_filter.php', { /* params */ }, function(return_result) {
// return_result[0].product_name;
}, 'json');
答案 1 :(得分:1)
检查响应的编码UTF-8 ASCII您可能拥有与解析器混乱的字符。