Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не могу разобратся с JSON


Автор: animegirl 29.7.2011, 05:42
Замучалась, может кто-нибудь в 3-4 строчках кода, показать как он работает?

Весь инет завален кучей примеров, но все они напиханы в довесок какой-то ерундой.

Можит мне кто-нибудь написать простой и понятный код?

Есть массив в пхп:
Код

<?
$a = array();
$a['x5k'] = 'kgh';
$a['x3k'] = 'zgh';
?>

Хочу его переправить клиенту, и потом там юзать
как-то так:
Код

alert(data['x5k']);
document.title = data['x3k'];


Не надо писать аяксы, функции левых фраймворков, методы защиты и прочие, что сбивает столку, две просты функции, как запихнуть, и как получить обратно.

Кланяюсь

Автор: нуп 29.7.2011, 10:20
Код

<?
$a = array();
$a['x5k'] = 'kgh';
$a['x3k'] = 'zgh';
$str = json_encode($a);
// передаем на клиента
?>

 в js 
Код

alert(data.x5k);


На пхп обратно переводить надо json_decode

Автор: Evghenusi 29.7.2011, 10:33
нуп, откуда в JS-е взялся массив/объект data? (извините за глупый вопрос)

мне удалось получить данные только так:
Код

var arr = eval(<?php echo json_encode($a); ?>);
alert(arr['x5k']);
alert(arr['x3k']);

воспользоваться JSON.parse так и не удалось

нашёл свою ошибку.

Код

var arr = JSON.parse('<?php echo json_encode($a); ?>'); //'
alert(arr.x5k);
alert(arr.x3k);


нуп, вопросов больше нет  smile 


Автор: нуп 29.7.2011, 10:56
Массив ассоциативный.

Добавлено через 2 минуты и 16 секунд
Код

<?
$a = array();
$a['x5k'] = 'kgh';
$a['x3k'] = 'zgh';
$str = json_encode($a);
echo $str;
?>

Результат 
{"x5k":"kgh","x3k":"zgh"}

Автор: animegirl 29.7.2011, 17:38
Evghenusi, Благодарствую, вот иммено это я и искала
Цитата(Evghenusi @  29.7.2011,  10:33 Найти цитируемый пост)
Код

var arr = JSON.parse('<?php echo json_encode($a); ?>');

Просто везде, куда не бросает поисковик, примеры по аналогии с этого линка http://www.json.org/js.html, и все как один пишут
Код

var myObject = eval('(' + myJSONtext + ')');

Я лично не разбираясь в яваскрипте, увидев нагромождение из скобок, решила, что всё так верно и должно быть, и не трогала там не чего, лишь заменяя вариаблу, ехом
Код

var myObject = eval('(' + <? echo json_encode($a); ?> + ')');

конечно получая непонятные мне ошибки, их я гуглила, и попадала, на всякую ерунду, и не одна сволочь нигде не привила простого примера как у вас. Бесит, люто бесит.  smile 

Автор: Evghenusi 29.7.2011, 18:21
рад что помог, я старался))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)