Я создаю огромный JSON-объект и сохраняю его в своей базе данных. Но когда я загружаю «строку» и эхо в PHP, я не могу получить доступ к объекту JSON в JQuery. Должен ли я что-то учитывать, если я хочу сохранить свой объект JSON в базе данных MySQL (когда я просто создаю массив и затем эхо его с помощью «echo json_encode ($ arr)», он работает нормально, но мне нужно сохранить объект для кэширования).JSON сохранить в базе данных и загрузить с помощью JQuery
{ "247": { "0": "Это вопрос", "1": "", "2": "247", "3": "0", "ответы" : [[«Ответ1», «960», «1»], [«Ответ 2», «962», «0»], [«Ответ 3», «961», «0»], [ Ответ 4 "," 963 "," 0 "]]}, {" 248 ": {" 0 ":" Это вопрос "," 1 ":" "," 2 ":" 247 "," 3 ":" 0 "," ответы ": [[« Ответ1 »,« 960 »,« 1 »], [« Ответ 2 »,« 962 »,« 0 »], [« Ответ 3 », 961" , "0"], [ "Ответ 4", "963", "0"]]}}
только отрывок
Если я просто откликнулся на этот JSON-объект, все будет хорошо, но если я загружу одну и ту же строку из базы данных и повторю ее, это не сработает.
Update 1: забудьте сказать, что я использую в текстовом поле с utf8_general_ci комплектовке
Update 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-Object.
Обновление 3: Я думаю, что я решил проблему. Некоторые перерыв проник в мой JSON-объект, так что я сделать это, перед выходом:
$output = str_replace("\n", "", $output);
$output = str_replace("\r", "", $output);
$output = str_replace("\r\n", "", $output);
Вы можете использовать Firebug для проверки что ответ от ser ver на самом деле именно то, что вы ожидаете? –
Ах хороший намек (я действительно должен использовать Firebug чаще), и я думаю, что теперь я узнал, в чем проблема. Некоторые перерывы проникают в мой объект, если я это делаю, перед эхом он отлично работает: $ output = str_replace ("\ n", "", $ output); $ output = str_replace ("\ r", "", $ output); $ output = str_replace ("\ r \ n", "", $ output); echo $ output; –
Только совет: $ output = str_replace (array ("\ n", "\ r", "\ r \ n"), "", $ output) –