我在这段代码上遇到了问题。 json不会允许双引号结果。恩。如果我有结果(一个悲伤的“故事”),json不会解析它。
$('.loader1').show();
$.ajax({
url: "findBook.php?action=populatemyacademy&bookCatId="+parentCategoryId+"",
cache: false,
dataType: "json",
success: function(data) {
$('.loader1').hide();
$.each(data.items, function(i,item){
$("#myAcademy").append('<div class="nameWrapper"><input name="checkMeM" type="checkbox" value="'+item.bookId+'"/><span title="'+item.bookName+'" class="checkBoxSpan">'+item.bookName+'</span></div>');
});
}});
以下是我在php脚本上生成json的方法
$sql = "SELECT academyBookId, title FROM academy_book WHERE academyBookCategoryId = $bookCatId AND academyId = $academyId";
$qPopulateAcademy = mysql_query($sql, $dbConMain) or die(__LINE__.' '.$sql.' '.mysql_error());
while($rPopulateAcademy = mysql_fetch_array($qPopulateAcademy)){
$rows[] = array('bookId' => $rPopulateAcademy [0], 'bookName' => $rPopulateAcademy [1]);
}
$jsdecode = json_encode($rows);
echo "{items:$jsdecode}";
答案 0 :(得分:4)
问题是服务器将其呈现为“在您的JSON文档中,这将无法正常工作,因为json_encode使用”“来换行,因此您可以执行以下操作:
$jsdecode = json_encode($rows,JSON_HEX_APOS|JSON_HEX_QUOT)
将用十六进制代码替换撇号和引号。