2011-03-08 35 views
2

我在這段代碼中遇到了問題。 json不會允許雙引號結果。恩。如果我有結果(一個悲傷的「故事」)json不會解析它。Ajax 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

爲什麼這會降低投票率? – Ben 2011-03-08 02:28:12

+0

@Ben:這就是我試圖弄清楚,我的問題似乎不相關? – andsien 2011-03-08 02:29:33

+0

這不是100%清楚,但它是一個值得回答的問題。無論如何,有人反對你。 – Ben 2011-03-08 02:35:23

回答

4

的問題是服務器呈現爲「你的JSON文件中,並由於json_encode使用這是不行的工作‘’包,這樣你就可以做到以下幾點:。

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

它將取代撇號和引號與他們的十六進制代碼

+0

謝謝jeremy它完美的作品.. – andsien 2011-03-08 03:09:13

+0

不錯。很高興知道..從來沒有碰到過這個問題 – Ben 2011-03-08 03:33:46

+0

謝謝你太ben了您的答覆.. – andsien 2011-03-08 03:37:23