我創建了一個巨大的JSON對象並將其保存在我的數據庫中。但是當我加載「字符串」並在PHP中回顯時,我無法訪問JQuery中的JSON對象。如果我想將我的JSON對象保存在MySQL數據庫中(當我剛剛創建數組,然後用echo「echo json_encode($ arr);」它工作正常,但我需要保存對象用於緩存)。JSON保存在數據庫中並使用JQuery加載
{ 「247」:{ 「0」: 「這是一個 問題」, 「1」: 「」, 「2」: 「247」, 「3」: 「0」, 「回答」 :[[回答1,960,1,],回答 4「,」963「,」0「]],{」248「:{」0「:」這是一個 問題「,」1「:」「,」2「:」247「 3「:」0「,」答案「:[[」Answer1「,」960「,」1「],[」Answer 2「,」962「,」0「],[」Answer 3「 961" , 「0」],[ 「回答 4」, 「963」, 「0」]]}}
只是一個摘錄
如果我只是迴應這個JSON對象,一切工作正常,但如果我從數據庫中加載相同的字符串並回顯它,它不起作用。
更新1:忘了告訴我使用文本場與UTF8_general_ci整理
更新2:多也許一點點代碼:
function start() {
$(".start").click(function() {
$.post("load_script.php", { }, function(data){
alert(data[247][0]);
}, "json");
return false;
});
}
這個加載腳本,並應警惕「這是一個問題」
<?php
require_once('connect.php');
$ergebnis = mysql_query("SELECT text FROM cache_table ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_object($ergebnis)) {
$output = $row->text;
}
echo $output;
?>
這是腳本,其中我使用JSON對象加載數據庫條目。
更新3: 我想我解決了這個問題。一些突破潛入我的JSON-對象,所以我做到這一點,在輸出之前:
$output = str_replace("\n", "", $output);
$output = str_replace("\r", "", $output);
$output = str_replace("\r\n", "", $output);
您可以用Firebug檢查來自服務器的響應ver實際上正是你所期待的? – 2009-06-10 12:02:22
好的提示(我真的必須更頻繁地使用Firebug),我想我現在已經找出問題所在。如果我這樣做,在echo之前,它會正常工作: $ output = str_replace(「\ n」,「」,$ output); $ output = str_replace(「\ r」,「」,$ output); $ output = str_replace(「\ r \ n」,「」,$ output); echo $ output; – 2009-06-10 12:10:24
只是一個提示:$ output = str_replace(array(「\ n」,「\ r」,「\ r \ n」),「」,$ output) – 2009-06-10 12:20:25