Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2011, 07:36
Новичок на форуме
Отправить личное сообщение для mishaga Посмотреть профиль Найти все сообщения от mishaga
 
Регистрация: 30.06.2011
Сообщений: 2

Из значения строки надо сделать объект
Привет!
Мой скрипт через $.ajax получает ответ (msg) от сервера: { stat: "ok", message: "Скрипт выполнен!" }
Но это строка. Как мне преобразовать её в JS объект, чтобы я мог обращаться отдельно к её свойствам, например, так:
if (msg.stat === 'ok') { alert(msg.message); }

Сейчас, естественно, оба свойства msg.stat и msg.message получили значения undefined... =(
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2011, 08:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,276

Сообщение от mishaga
Как мне преобразовать её в JS объект
Как вариант...

<script type="text/javascript">
function Go() {
	var str='{ stat: "ok", message: "Скрипт выполнен!" }'
	var msg=eval('('+str+')')
	alert(msg.stat+' '+msg.message)
}
</script>
<input type="button" value="Get" onclick='Go()' />
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2011, 09:33
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

напиши функцию

function callback(obj){alert(obj.message)}


и отдавай строку с сервера так

Код:
callback(  { stat: "ok", message: "Скрипт выполнен!" } )
а к странице на сервере обращайся не через ajax,а через создание тега скрипт

function load(){
 
  var a = document.createElement('script');
  a.src="/ajax.php"
  a.onload = function(){ this.parentNode.removeChild(this) }
  (document.head||document.getElementsByTagName('head')[0]).appendChild( a )

}
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2011, 09:38
Новичок на форуме
Отправить личное сообщение для mishaga Посмотреть профиль Найти все сообщения от mishaga
 
Регистрация: 30.06.2011
Сообщений: 2

Спасибо, eval работает =)
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2011, 13:55
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

mishaga,
eval зло, у ajax есть dataType:
$.ajax({
   type: "GET",
   url: "test.php",
   dataType: "json"
 });


с сервера посылается:
header("Content-type: application/json");


Также есть getJSON, а то что вы делаете можно смело назвать - извращение!

melky,
ksa,
Вы вопрос читали?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #6 (permalink)  
Старый 30.06.2011, 15:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,276

Сообщение от Gozar
то что вы делаете можно смело назвать - извращение
Тебе видней... Я с ajax не работаю... Как и с JSON...
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2011, 13:01
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Gozar,
Слишком категорично, если надо преобразовать строку в объект (именно это требуется) кроссбраузерно, то либо eval, либо
(new Function('return ' + '{a : 1, b : 2}'))()
. Если же мучает вопрос секурности, то можно воспользоваться библиотекой, но и она тоже сводится к использованию eval если нет других средств браузера, предварительно проведя проверку входного значения.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать 1-й символ строки заглавным YISHIMITSY Общие вопросы Javascript 16 18.03.2015 21:47
как сделать выпадающий список, чтобы второй зависил от значения первого???? zsaz jQuery 2 16.07.2010 20:12
Как сделать объект не изменяемым? Major_Krieg Серверные языки и технологии 1 07.11.2009 02:54
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58