我创建了一个巨大的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