11.06.2014, 16:25
|
Аспирант
|
|
Регистрация: 12.07.2012
Сообщений: 81
|
|
из строки в массив
Здравствуйте.
Есть строка send="{url:'', method:'POST', param:''}";
Как из этой строки сделать массив объектов
send={url:'', method:'POST', param:''}
?
|
|
11.06.2014, 16:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
|
|
11.06.2014, 16:42
|
Аспирант
|
|
Регистрация: 12.07.2012
Сообщений: 81
|
|
Все бы так просто....((
Поясню:
Есть : <input type="text" name="url" send="{url:'124', method:'POST', param:'44214'}">
var send = $(this.form).find('input[send]');
console.log(JSON.parse(send.attr('send')));
Uncaught SyntaxError: Unexpected token u
|
|
11.06.2014, 16:48
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
niko42, это:
"{url:'', method:'POST', param:''}"
не json. json выглядит так:
"{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}"
Тогда всё работает:
var send = "{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}";
alert( JSON.parse(send) );
|
|
11.06.2014, 16:54
|
Аспирант
|
|
Регистрация: 12.07.2012
Сообщений: 81
|
|
Сообщение от Sweet
|
niko42, это:
"{url:'', method:'POST', param:''}"
не json. json выглядит так:
"{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}"
Тогда всё работает:
var send = "{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}";
alert( JSON.parse(send) );
|
Спасибо. К сожалению, не так всё просто=)
Смотрите:
<input type="text" name="url" send="{'url':'124', 'method':'POST', 'param':'44214'}">
var send = $(this.form).find('input[send]');
var param = JSON.parse('"' + send.attr('send') + '"');
console.log(param.url);
Ответ: undefined
|
|
11.06.2014, 16:55
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
var text = "{url:'', method:'POST', param:''}";
var obj = new Function('return ' + text)();
alert(JSON.stringify(obj));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
11.06.2014, 16:57
|
Аспирант
|
|
Регистрация: 12.07.2012
Сообщений: 81
|
|
Блин, работает только в таком состоянии:
<input type="text" name="url" send='{"url":"124", "method":"POST", "param":"44214"}'>
|
|
11.06.2014, 17:03
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от niko42
|
Ответ: undefined
|
Правильно. Ведь у строки нет свойства .url. А у тебя param - это строка:
var param = JSON.parse('"' + "{'url':'124', 'method':'POST', 'param':'44214'}" + '"');
alert(typeof param); // внезапно? =)
Суть-то совсем в другом:
<input type="text" name="url" send='{"url":"", "method":"POST", "param":""}'>
|
|
11.06.2014, 17:03
|
Аспирант
|
|
Регистрация: 12.07.2012
Сообщений: 81
|
|
Сообщение от nerv_
|
var text = "{url:'', method:'POST', param:''}";
var obj = new Function('return ' + text)();
alert(JSON.stringify(obj));
|
Отличный вариант, спасибо !
var send = $(this.form).find('input[send]');
var obj = new Function('return ' + send.attr('send'))();
console.log(obj.url);
|
|
11.06.2014, 17:04
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Сообщение от niko42
|
Блин, работает только в таком состоянии
|
Ты так говоришь, будто бы в таком состоянии есть что-то плохое
|
|
|
|