JSON или XML
Что лучше JSON или XML?
|
Кто круче Терминатор или Рэмбо?
mycoding, не забывайте ставить знаки вопроса, а то не понятно вопрос это или утверждение. |
Конечно терминатор.
|
:)
Просто мне нравится JSON, а вот у друзей на работе заставляют пользоваться xml. |
|
Арни круче всех!)
|
Цитата:
|
тоже JSON в основном последнее время использую. Но с ним есть и свои маленькие неудобности: например в строковых значениях должны отсутствовать символы перевода строк (из-за синтаксиса js) - т.е. дополнительно обрабатывать перед отправкой.
|
Цитата:
Цитата:
|
Цитата:
var x = 'fff\ dffdf\ ffdfddf '; var y = 'fff' + '\n' + 'dffdf' + '\n' + 'ffdfddf '; alert(x == y); Цитата:
Просто смотрю как по мне - если подгружать именно данные которые будут дообрабатываться еще - то удобнее json. А если надо просто куски html подгружать - xml. |
Цитата:
var x = 'fff\ dffdf\ ffdfddf '; var y = 'fff' + '\n' + 'dffdf' + '\n' + 'ffdfddf '; alert([x,y]); Цитата:
|
Цитата:
|
Может мы о разном говорим?
Имею обработчик ajax-запроса:
$str = "Каждая
в своей
строке";
if (isset($_POST['how'])) {
$how = $_POST['how'];
if ($how == 'json') {
// передаю json - экранирую
echo 'var x = "' . str_replace("\r\n" , "\\\r\n" , $str) . '";';
} else {
// передаю html
echo '<div>' . $str . '</div>';
}
}
В textarea мне надо получить этот текст (состоящий из 3-х строк) Вот запрос на html:
function whatdo()
{
// действия
$.post('./listener.php' , {how : 'html'}, function(data){
var txt = $(data).text();
$('textarea').val(txt); // получим как в php было - три строки
});
}
- все ОК. Вот запрос на json:
function whatdo2()
{
// действия
$.post('./listener.php' , {how : 'json'}, function(data){
try {
eval(data);
$('textarea').val(x); // получим все в одну строку
} catch(e) {
alert('ошибка');
}
});
}
- отрабатывает без ошибки, но результат в textarea - одна слитая строка, а не три. Т.е. по простому сделать(как вариант 1.) не выходит. Или что делаю не так? |
Цитата:
json_encode($str);А вы просто слэши в конце каждой строки поставили. |
спс, буду знать.
|
Если использование XSLT упростит задачу, то конечно лучше XML, например подгрузка дерева. В общем всё от ситуации зависит.
|
Пробовал загружать данные в json с сайта, они приходят в виде строки.
Сделал myjson = eval(json); Выдаёт : Ошибка: invalid label Исходный код: {subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"} JSON : {subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"} Пробовал и myjson = eval('('+json+')'); Просто я первый раз json загружаю с сайта, раньше html уже готовый загружал. А теперь появилась необходимость в JSON и что-то не разбирусь. НУ вроде получилось запустить myjson = eval('('+json+')'); НО как теперь к свойствам обратится ? ЧТо то myjson.title не работает. |
Цитата:
alert(eval('({subject:"tfkp",title:"Сборник задач по теории функции комплексного еременного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"})').subject);
Цитата:
alert(JSON.stringify({subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"}));
И в современных браузерах есть специальный метод JSON.parse:
alert(JSON.parse('{"subject":"tfkp","title":"Сборник задач по теории функции комплексного переменного","author":"Волковынс кий, Лунц, Араманович","yearOfPublish":"2006"}').subject);
|
Всё заработало, огромное спасибо.
|
Цитата:
Цитата:
Цитата:
|
B~Vladi,
http://json.org/ вот грамматика JSON. Где там перевод строки? Не путать escape-последовательность \n с переводом строки. Цитата:
|
Цитата:
var dd = '\u0410' + '\\' + 'r' + '\\' + 'n' + '\u042f'; // вот такое получили от сервера alert(dd); var str = 'dd1 = "' + dd + '"'; eval(str); alert(dd1); // наш результат |
Сейчас пытаюсь загрузить данные из mysql, а потом перевести их в json.
Вот код
if(isset($_POST['subject'])){
$subject=$_POST['subject'];
include '../config.php';
$link = mysql_connect($host, $mysql_user, $mysql_password) or die("Could not connect: " . mysql_error());
mysql_select_db($database, $link) or die ('Can\'t use $database : ' . mysql_error());
$sql="SELECT * FROM `subjects` where `subjectShort`='$subject'";
if(!$rs = mysql_query($sql)){
$answer='[{success:false}]';
}else{
$row=mysql_fetch_array($rs);
$rs = mysql_query($sql);
$arr=array();
while($obj=mysql_fetch_object($rs)){
$arr[]=$obj;
}
$answer = json_encode($arr);
}
echo $answer;
//echo "[{subjectShort:'matan',subjectFull:'Математический анализ',namesBooks:['Демидович','Тест1']}]";
}
?>
ПОчему то приходит только одна одно значение, т.е. в $arr все есть, а строка json_encode($arr); возвращает только [{"subjectShort":"matan","subjectFull":null,"namesB ooks":null}] |
Цитата:
|
mycoding, погляди тут как доставать данные из таблички mysql.
|
| Часовой пояс GMT +3, время: 07:58. |