из строки в массив
Здравствуйте.
Есть строка send="{url:'', method:'POST', param:''}"; Как из этой строки сделать массив объектов send={url:'', method:'POST', param:''} ? |
|
Цитата:
Поясню: Есть : <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 |
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 |
var text = "{url:'', method:'POST', param:''}";
var obj = new Function('return ' + text)();
alert(JSON.stringify(obj));
|
Блин, работает только в таком состоянии:
<input type="text" name="url" send='{"url":"124", "method":"POST", "param":"44214"}'> |
Цитата:
var param = JSON.parse('"' + "{'url':'124', 'method':'POST', 'param':'44214'}" + '"');
alert(typeof param); // внезапно? =)
Суть-то совсем в другом:
<input type="text" name="url" send='{"url":"", "method":"POST", "param":""}'>
|
Цитата:
var send = $(this.form).find('input[send]'); var obj = new Function('return ' + send.attr('send'))(); console.log(obj.url); |
Цитата:
|
:-?
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function ()
{
var s = $('input[data-send]').data('send');
alert(s.param)
})
</script>
</head>
<body>
<input type="text" name="url" data-send='{"url":"124","method":"POST","param":"44214"}'>
</body>
</html>
|
| Часовой пояс GMT +3, время: 21:43. |