jquery - Ajax Json 不允许双引号结果

标签 jquery ajax json double-quotes

我在这段代码上遇到了问题。 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}";

最佳答案

问题是服务器在 JSON 文档中将其呈现为 ",但这不起作用,因为 json_encode 使用 ""进行换行,因此您可以执行以下操作:

$jsdecode = json_encode($rows,JSON_HEX_APOS|JSON_HEX_QUOT)

它将用十六进制代码替换撇号和引号。

关于jquery - Ajax Json 不允许双引号结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227606/

相关文章:

javascript - 如何获取 html 表格单元格内的图像路径

javascript - 如何让网站在警报/弹出窗口下继续更新?

javascript - 无法让 Canvas 元素中的图像显示为 DIV 背景图像 (HTML/Javascript)?

c# - 如何在标题下方的 Accordion 中添加箭头图像而不是标题背景?

php - Laravel 5.2 使用 AJAX 更新表并添加新记录,无需重新加载页面

ios - 如何以正确的方式解析 IOS SWIFT 3 中的 Google Distance Matrix API JSON

jquery - 为什么这段 jQuery 代码不起作用?

javascript - 如何通过javarscript或jquery在数组中添加属性复选框(checked=true)

javascript - 是否有 ES6 快捷方式来比较元素数组和对象键并删除不匹配的元素?

java - Gson自定义反序列化但只有一个字段